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