I simply cannot succeed in running GWTTestCase tests. I'm using GWT 2.6.1, JUnit 4.11, ant 1.8.2. I've created sample repository on github.
Ant target than runs the tests (maybe it's somtehing obvious in here):
<target name="test.gwt" depends="javac.test"
description="Run GWTTestCase tests." >
<junit haltonfailure="false" includeantruntime="false">
<sysproperty key="gwt.args" value="-prod -runStyle
HtmlUnit" />
<sysproperty key="gwt.persistentunitcachedir"
value="${gwt.cache.dir}" />
<classpath>
<pathelement location="${src.dir}" />
<pathelement location="${test.build.dir}" />
<path refid="project.class.path" />
</classpath>
<formatter type="brief" usefile="false" />
<test name="com.example.client.TestPerson" />
</junit>
</target>
I run tests with ant test.gwt, the output I get is:
test.gwt:
[junit] Testsuite: com.example.client.TestPerson
[junit] Tests run: 1, Failures: 0, Errors: 1, Time elapsed: 0.848 sec
[junit]
[junit] ------------- Standard Output ---------------
[junit] Loading inherited module 'com.example.Main'
[junit] [ERROR] Unexpected error while processing XML
[junit] java.lang.ClassCastException: org.apache.xerces.parsers.XIncludeAwareParserConfiguration cannot be cast to org.apache.xerces.xni.parser.XMLParserConfiguration
[junit] at org.apache.xerces.parsers.SAXParser.<init>(Unknown Source)
[junit] at org.apache.xerces.parsers.SAXParser.<init>(Unknown Source)
[junit] at org.apache.xerces.jaxp.SAXParserImpl$JAXPSAXParser.<init>(Unknown Source)
[junit] at org.apache.xerces.jaxp.SAXParserImpl.<init>(Unknown Source)
[junit] at org.apache.xerces.jaxp.SAXParserFactoryImpl.newSAXParser(Unknown Source)
[junit] at com.google.gwt.dev.util.xml.ReflectiveParser.createNewSaxParser(ReflectiveParser.java:65)
[junit] at com.google.gwt.dev.util.xml.ReflectiveParser.access$000(ReflectiveParser.java:46)
[junit] at com.google.gwt.dev.util.xml.ReflectiveParser$Impl.parse(ReflectiveParser.java:343)
[junit] at com.google.gwt.dev.util.xml.ReflectiveParser$Impl.access$200(ReflectiveParser.java:68)
[junit] at com.google.gwt.dev.util.xml.ReflectiveParser.parse(ReflectiveParser.java:418)
[junit] at com.google.gwt.dev.cfg.ModuleDefLoader.nestedLoad(ModuleDefLoader.java:333)
[junit] at com.google.gwt.dev.cfg.ModuleDefLoader$1.load(ModuleDefLoader.java:100)
[junit] at com.google.gwt.dev.cfg.ModuleDefLoader.doLoadModule(ModuleDefLoader.java:197)
[junit] at com.google.gwt.dev.cfg.ModuleDefLoader.doLoadModule(ModuleDefLoader.java:176)
[junit] at com.google.gwt.dev.cfg.ModuleDefLoader.createSyntheticModule(ModuleDefLoader.java:105)
[junit] at com.google.gwt.junit.CompileStrategy.maybeCompileModuleImpl2(CompileStrategy.java:165)
[junit] at com.google.gwt.junit.CompileStrategy.maybeCompileModuleImpl(CompileStrategy.java:112)
[junit] at com.google.gwt.junit.SimpleCompileStrategy.maybeCompileModule(SimpleCompileStrategy.java:36)
[junit] at com.google.gwt.junit.JUnitShell.runTestImpl(JUnitShell.java:1342)
[junit] at com.google.gwt.junit.JUnitShell.runTestImpl(JUnitShell.java:1311)
[junit] at com.google.gwt.junit.JUnitShell.runTest(JUnitShell.java:705)
[junit] at com.google.gwt.junit.client.GWTTestCase.runTest(GWTTestCase.java:421)
[junit] at junit.framework.TestCase.runBare(TestCase.java:130)
[junit] at junit.framework.TestResult$1.protect(TestResult.java:106)
[junit] at junit.framework.TestResult.runProtected(TestResult.java:124)
[junit] at junit.framework.TestResult.run(TestResult.java:109)
[junit] at junit.framework.TestCase.run(TestCase.java:120)
[junit] at com.google.gwt.junit.client.GWTTestCase.run(GWTTestCase.java:247)
[junit] at junit.framework.TestSuite.runTest(TestSuite.java:230)
[junit] at junit.framework.TestSuite.run(TestSuite.java:225)
[junit] at org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.run(JUnitTestRunner.java:518)
[junit] at org.apache.tools.ant.taskdefs.optional.junit.JUnitTask.executeInVM(JUnitTask.java:1420)
[junit] at org.apache.tools.ant.taskdefs.optional.junit.JUnitTask.execute(JUnitTask.java:848)
[junit] at org.apache.tools.ant.taskdefs.optional.junit.JUnitTask.executeOrQueue(JUnitTask.java:1899)
[junit] at org.apache.tools.ant.taskdefs.optional.junit.JUnitTask.execute(JUnitTask.java:800)
[junit] at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:291)
[junit] at sun.reflect.GeneratedMethodAccessor4.invoke(Unknown Source)
[junit] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
[junit] at java.lang.reflect.Method.invoke(Method.java:616)
[junit] at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106)
[junit] at org.apache.tools.ant.Task.perform(Task.java:348)
[junit] at org.apache.tools.ant.Target.execute(Target.java:390)
[junit] at org.apache.tools.ant.Target.performTasks(Target.java:411)
[junit] at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1399)
[junit] at org.apache.tools.ant.Project.executeTarget(Project.java:1368)
[junit] at org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41)
[junit] at org.apache.tools.ant.Project.executeTargets(Project.java:1251)
[junit] at org.apache.tools.ant.Main.runBuild(Main.java:809)
[junit] at org.apache.tools.ant.Main.startAnt(Main.java:217)
[junit] at org.apache.tools.ant.launch.Launcher.run(Launcher.java:280)
[junit] at org.apache.tools.ant.launch.Launcher.main(Launcher.java:109)
[junit] ------------- ---------------- ---------------
[junit] Testcase: testCreate(com.example.client.TestPerson): Caused an ERROR
[junit] (see previous log entries)
[junit] com.google.gwt.core.ext.UnableToCompleteException: (see previous log entries)
[junit] at com.google.gwt.dev.cfg.ModuleDefLoader.nestedLoad(ModuleDefLoader.java:336)
[junit] at com.google.gwt.dev.cfg.ModuleDefLoader$1.load(ModuleDefLoader.java:100)
[junit] at com.google.gwt.dev.cfg.ModuleDefLoader.doLoadModule(ModuleDefLoader.java:197)
[junit] at com.google.gwt.dev.cfg.ModuleDefLoader.doLoadModule(ModuleDefLoader.java:176)
[junit] at com.google.gwt.dev.cfg.ModuleDefLoader.createSyntheticModule(ModuleDefLoader.java:105)
[junit] at com.google.gwt.junit.CompileStrategy.maybeCompileModuleImpl2(CompileStrategy.java:165)
[junit] at com.google.gwt.junit.CompileStrategy.maybeCompileModuleImpl(CompileStrategy.java:112)
[junit] at com.google.gwt.junit.SimpleCompileStrategy.maybeCompileModule(SimpleCompileStrategy.java:36)
[junit] at com.google.gwt.junit.JUnitShell.runTestImpl(JUnitShell.java:1342)
[junit] at com.google.gwt.junit.JUnitShell.runTestImpl(JUnitShell.java:1311)
[junit] at com.google.gwt.junit.JUnitShell.runTest(JUnitShell.java:705)
[junit] at com.google.gwt.junit.client.GWTTestCase.runTest(GWTTestCase.java:421)
[junit] at com.google.gwt.junit.client.GWTTestCase.run(GWTTestCase.java:247)
[junit]
[junit]
[junit] Test com.example.client.TestPerson FAILED
BUILD SUCCESSFUL
Total time: 1 second
Any ideas what I might be doing wrong? I've also tried JUnit 3.8 - did not help. Maybe missing .*jar files or not correct versions?
Ok, I managed to run the
GWTTestCasetests withAnt. The sample project is on github.First of all I switched to
junittask fork mode. Which, as documentation says,Then I managed to get more verbose errors than this
[ERROR] Unexpected error while processing XMLwhen I addedvalidation-apipackage (ivy.xml):Then it was clear that I was missing
GWTmodule for my tests. So I created one (./test/com/example/MainTests.xml.gwt):And eventually I had to add tests module path to tests classpath (
build.xml):