[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[ecf-dev] Re: Automated test execution for ECF build based on autotestsuite (pluginbuilder)

Thanks Marcus.

I apologize for not making the ECF phone call ... I was traveling. I'm
responding just to let you know your mail hasn't gone into a black
hole. 

What you say makes a lot of sense. Please let me study it and get back
to you in a week (8/19). I'm also traveling for the next week, but
should have some limited email access.
 -ted




On Fri, 2008-08-08 at 10:31 +0200, Markus Alexander Kuppe wrote:
> 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