2011-11-16 66 views
1

找不到测试类'com.myco.clearing.commons.xml.XMLNodeTest'我有一个Maven(3.0.3)/ GWT(2.4)项目。我正在尝试编写一些JUnit测试用例,但遇到问题。我所有的测试用例扩展GWTTestCase和包括此代码...GWT:在模块

@Override 
public String getModuleName() { 
    return "com.myco.clearing.product.ProductPlus"; 
} 

的“ProductPlus.gwt.xml”文件位于我的src/main/java目录。要包括在我的类路径我有这个配置对于​​我的万无一失,插件...

 <plugin> 
      <artifactId>maven-surefire-plugin</artifactId> 
      <version>2.6</version> 
      <configuration> 
       <additionalClasspathElements> 
        <additionalClasspathElement>${project.build.sourceDirectory}</additionalClasspathElement> 
        <additionalClasspathElement>${project.build.testSourceDirectory}</additionalClasspathElement> 
       </additionalClasspathElements> 
       <useManifestOnlyJar>false</useManifestOnlyJar> 
       <forkMode>always</forkMode> 
       <systemProperties> 
        <property> 
         <name>gwt.args</name> 
         <value>-out \${webAppDirectory}</value> 
        </property> 
       </systemProperties> 
      </configuration> 
     </plugin> 

然而,在运行“MVN干净的测试”,我得到所有这些错误,包括这一个...

testParsingNodeWithAttributes(com.myco.clearing.commons.xml.XMLNodeTest) Time elapsed: 2.563 sec <<< ERROR! 
com.google.gwt.junit.JUnitFatalLaunchException: The test class 'com.myco.clearing.commons.xml.XMLNodeTest' was not found in module 'com.myco.clearing.product.ProductPlus'; no compilation unit for that type was seen 
at com.google.gwt.junit.JUnitShell.checkTestClassInCurrentModule(JUnitShell.java:743) 
at com.google.gwt.junit.JUnitShell.runTestImpl(JUnitShell.java:1346) 
at com.google.gwt.junit.JUnitShell.runTestImpl(JUnitShell.java:1309) 
at com.google.gwt.junit.JUnitShell.runTest(JUnitShell.java:653) 
at com.google.gwt.junit.client.GWTTestCase.runTest(GWTTestCase.java:441) 
at junit.framework.TestCase.runBare(TestCase.java:134) 
at junit.framework.TestResult$1.protect(TestResult.java:110) 
at junit.framework.TestResult.runProtected(TestResult.java:128) 
at junit.framework.TestResult.run(TestResult.java:113) 
at junit.framework.TestCase.run(TestCase.java:124) 
at com.google.gwt.junit.client.GWTTestCase.run(GWTTestCase.java:296) 
at junit.framework.TestSuite.runTest(TestSuite.java:232) 
at junit.framework.TestSuite.run(TestSuite.java:227) 
at org.junit.internal.runners.JUnit38ClassRunner.run(JUnit38ClassRunner.java:83) 
at org.apache.maven.surefire.junit4.JUnit4TestSet.execute(JUnit4TestSet.java:59) 
at org.apache.maven.surefire.suite.AbstractDirectoryTestSuite.executeTestSet(AbstractDirectoryTestSuite.java:120) 
at org.apache.maven.surefire.suite.AbstractDirectoryTestSuite.execute(AbstractDirectoryTestSuite.java:145) 
at org.apache.maven.surefire.Surefire.run(Surefire.java:104) 
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 
at java.lang.reflect.Method.invoke(Method.java:597) 
at org.apache.maven.surefire.booter.SurefireBooter.runSuitesInProcess(SurefireBooter.java:290) 
at org.apache.maven.surefire.booter.SurefireBooter.main(SurefireBooter.java:1017) 

这是一个奇怪的错误,因为有问题的类位于我的src/test/java目录中,我已将其作为“additionalClassPathElement”(上面)包含在其中。我需要做些什么其他配置才能纠正此错误? - Dave

回答

1

测试包必须位于指定模块的客户端类路径中。根据模块的名称,您的测试可能属于com.myco.clearing.product.client包或其子包。

+0

您能否解释一下如何实现?谢谢。 – Cornelius

+0

@Cornelius如何实现?该包与项目中的正常客户端代码相同,只是在测试源代码中,而不是常规源代码。 –