[
Date Prev][
Date Next][
Thread Prev][
Thread Next][
Date Index][
Thread Index]
[
List Home]
[ecf-dev] Automated test execution for ECF build based on autotestsuite (pluginbuilder)
|
Hi Ted,
automated testing was one of yesterday's topics the ECF con call. Since
I've integrated automated test execution into Versants build process
recently, I'd like to share how it's done. You have probably an idea
where it's best integrated into the ECF build.
I first looked into the Eclipse testing framework [1]. It's JUnit3 based
and spawns of an Eclipse instance for test execution. It supports UI
tests, headless tests as well as performance tests. Test execution is
handled by Ant. It spawns an Eclipse instance and executes test suites.
I find this way too complex and cumbersome. A developer simply wants to
write a unit test. One doesn't want write/maintain xml that defines
execution order. Especially since execution order shouldn't matter for
unit tests.
Thus I continued to look for something that doesn't require additional
xml next to the plain test cases and I found pluginbuilder autotestsuite
(EPL) [2]. It consists of a bunch of OSGi bundles which come with an
Equinox application. Basically one drops the unit tests + autotestsuite
bundles into the Eclipse installation under test and starts the
autotestsuite application (-application
org.pluginbuilder.autotestsuite.application.AutoTestApplication).
Autotestsuite then takes care of finding test cases by searching bundles
and bundle classpaths based on regular expression. All test cases that
are found are passed to a junit.framework.TestSuite and executed. Test
results are collected by the junit xml formatter. Autotestsuite doesn't
require lists of test cases nor hard coded junit.framework.TestSuites
and IMO that's the beauty of it.
So how could the integration of autotestsuite in ECF look like?
1) Build test bundles. I'd suggest to create test features and build and
package them independently. Like it is done for platform [3].
2) Deploy Eclipse SDK + ECF + ECF tests + autotestsuite to some temp
folder on the build box, either by unzipping everything into features/
and plugins/ (<3.4), using the links/ folder (that's how Versant does
it) or by using the p2 director.
3) Launch the autotestsuite application.
4) Collect the JUnit xml output and post process it (html reports, email
notification...)
Cheers
Markus
[1]
http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.test/testframework.html
[2] http://www.pluginbuilder.org/documentation/run-tests/
[3]
http://download.eclipse.org/eclipse/downloads/drops/R-3.4-200806172000/download.php?dropFile=eclipse-Automated-Tests-3.4.zip