On Aug 18, 2008, at 10:53 AM, Adam Murdoch wrote:
Hans Dockter wrote:
On Aug 17, 2008, at 12:46 AM, Adam Murdoch wrote:
Hi,
I've just checked in some test cases into src/test/groovy which
I've termed 'integration' tests. I think they might need a better
home, but I've added them there so that they are being run in the
meantime.
The intended scope of these tests is somewhere between the unit
tests (test a single class in isolation) and the existing
integration tests (a broad pass through gradle as a whole). They
are intended to 1. check that a bunch of classes work together,
2. be more focused on a particular behaviour than the other
integration tests, and 3. be faster to run. In particular, I
think these sorts of tests are handy for testing error handling.
So, where should they live? One option is to leave them where
they are, as they are pretty fast.
I think it is a good place where they are now as they are fast. It
might make sense to organize this kind of integration tests into
its own package structure.
I agree. I'll move them out of the top level package.
When executing them a test fails:
java.lang.AssertionError:
Expected: not null
got: null
at org.junit.Assert.assertThat(Assert.java:502)
at org.junit.Assert.assertThat(Assert.java:492)
at org.gradle.AbstractIntegrationTest.getTestBuildFile
(AbstractIntegrationTest.java:43)
at
org.gradle.ProjectLoadingIntegrationTest.handlesSimilarlyNamedBuildFi
lesInSameDirectory(ProjectLoadingIntegrationTest.java:26)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke
(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke
(DelegatingMethodAccessorImpl.java:25)
at org.junit.internal.runners.TestMethod.invoke
(TestMethod.java:59)
at org.junit.internal.runners.MethodRoadie.runTestMethod
(MethodRoadie.java:98)
at org.junit.internal.runners.MethodRoadie$2.run
(MethodRoadie.java:79)
at
org.junit.internal.runners.MethodRoadie.runBeforesThenTestThenAfters(
MethodRoadie.java:87)
at org.junit.internal.runners.MethodRoadie.runTest
(MethodRoadie.java:77)
at org.junit.internal.runners.MethodRoadie.run
(MethodRoadie.java:42)
at
org.junit.internal.runners.JUnit4ClassRunner.invokeTestMethod
(JUnit4ClassRunner.java:88)
at org.junit.internal.runners.JUnit4ClassRunner.runMethods
(JUnit4ClassRunner.java:51)
at org.junit.internal.runners.JUnit4ClassRunner$1.run
(JUnit4ClassRunner.java:44)
at org.junit.internal.runners.ClassRoadie.runUnprotected
(ClassRoadie.java:27)
at org.junit.internal.runners.ClassRoadie.runProtected
(ClassRoadie.java:37)
at org.junit.internal.runners.JUnit4ClassRunner.run
(JUnit4ClassRunner.java:42)
at com.intellij.rt.junit4.Junit4ClassSuite.run
(Junit4ClassSuite.java:99)
at com.intellij.rt.execution.junit.JUnitStarter.main
(JUnitStarter.java:40)
You'll need to add src/test/resources to your classpath when you
run them, and add *.gradle to the set of resources that intellij
copies into the test class dir. I'll update the wiki to mention this.
That was the reason why the tests have failed. They pass now. When
you execute ProjectLoadingIntegrationTest as a single test it takes 2
seconds on my machine which is mostly the Groovy startup and init
time. You pay this only once when we do a build, as we execute all
our JUnit tests in one JVM. This makes things slightly less stable
but improves the performance dramatically.
- Hans
--
Hans Dockter
Gradle Project lead
http://www.gradle.org
---------------------------------------------------------------------
To unsubscribe from this list, please visit:
http://xircles.codehaus.org/manage_email