Hi,

I've just checked in a bunch of changes to how we execute tests. Some things are temporarily not working, so if you're using trunk, you might find your build is broken. I should have these things finished up over the next couple of days.

The changes are around how we launch the tests. We're doing more of the work in Gradle, and less of the work in the test Ant tasks (in fact, we don't use Ant at all for TestNG now, and just 2 helper classes from Ant for JUnit).

The reason for the changes are that they will allow us to add features in a test-framework independent way. For example, in the Gradle 0.9 release we now have support for TestListeners, which receive notifications as tests are started and completed:

test.beforeTest { test -> println "starting $test" }
test.afterTest { test, result -> if (result.resultType == TestResult.FAILED ) println "$test FAILED!" }

This works for either JUnit or TestNG tests.

In 0.9 you also have the ability to refork the test process every n test classes. This can be a better alternative to cranking up the heap size.

The changes should also help with performance. For example, we scan for tests at the same time as we are executing tests. We also notify listeners asynchronously.

Post 0.9, these changes will let us do all kinds of interesting things: test-framework independent reporting, re-run failed tests, better progress reporting. And parallel test execution and, ultimately, distributed test execution.

So what's broken?
- Pretty much all of the test options except for systemProperties.
- More stuff here: http://gradle.codehaus.org/Gradle+0.9+Breaking+Changes#Gradle0.9BreakingChanges-Testtask
- Probably some other stuff. This is a pretty big change.


--
Adam Murdoch
Gradle Developer
http://www.gradle.org


---------------------------------------------------------------------
To unsubscribe from this list, please visit:

   http://xircles.codehaus.org/manage_email


Reply via email to