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
GWTTestCase
tests withAnt
. The sample project is on github.First of all I switched to
junit
task fork mode. Which, as documentation says,Then I managed to get more verbose errors than this
[ERROR] Unexpected error while processing XML
when I addedvalidation-api
package (ivy.xml
):Then it was clear that I was missing
GWT
module 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
):