GWT测试用例:没有看到该类型的编译单元..为什么?



我使用的是GWT 2.4。我在运行最近在一个新包中创建的一些GWTTestCase文件时遇到问题。我有文件在现有的包中正确运行,我不明白为什么像下面这样的测试失败了。我正在使用Maven 3.0.3来启动这些。以下是我如何配置插件。。。

        <!-- GWT Maven Plugin -->
        <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>gwt-maven-plugin</artifactId>
            <version>${gwtVersion}</version>
            <executions>
                <execution>
                    <id>clean-compile</id>
                    <goals>
                        <goal>clean</goal>
                        <goal>compile</goal>
                    </goals>
                </execution>
                <execution>
                    <id>run-gwt-tests</id>
                    <phase>test</phase>
                    <goals>
                        <goal>test</goal>
                    </goals>
                </execution>
            </executions>
            <!-- Plugin configuration. There are many available options, see gwt-maven-plugin 
                documentation at codehaus.org -->
            <configuration>
                <runTarget>index.html</runTarget>
                <hostedWebapp>${webappDirectory}</hostedWebapp>
                <i18nMessagesBundle>com.myco.clearing.product.client.Messages</i18nMessagesBundle>
            </configuration>
        </plugin>

这是测试文件的测试主要部分。。。

package com.myco.product.client.view;
...
public class GwtTestAppView extends GWTTestCase {
private AppView appView;
@Override
public String getModuleName() {
    return "com.myco.clearing.product.ProductPlusJUnit";
}   // getModuleName
public void gwtSetUp() {
    appView = new AppView();
    RootPanel.get().add(appView);
} // gwtSetup
public void testShowLoading() { 
    testShowLoading(true);
}   // testShowLoading

这是我运行"mvn-clean-test"时得到的错误

[INFO] -------------------------------------------------------
[INFO]  T E S T S
[INFO] -------------------------------------------------------
[INFO] Running junit.framework.TestSuite@c40c80
[INFO] Tests run: 2, Failures: 0, Errors: 2, Skipped: 0, Time elapsed: 2.656 sec <<< FAILURE!
[INFO] testShowLoading(com.myco.product.client.view.GwtTestAppView)  Time elapsed: 2.656 sec  <<< ERROR!
[INFO] com.google.gwt.junit.JUnitFatalLaunchException: The test class 'com.myco.product.client.view.GwtTestAppView' was not found in module 'com.myco.clearing.product.ProductPlusJUnit'; no compilation unit for that type was seen
[INFO]  at com.google.gwt.junit.JUnitShell.checkTestClassInCurrentModule(JUnitShell.java:743)
[INFO]  at com.google.gwt.junit.JUnitShell.runTestImpl(JUnitShell.java:1346)
[INFO]  at com.google.gwt.junit.JUnitShell.runTestImpl(JUnitShell.java:1309)
[INFO]  at com.google.gwt.junit.JUnitShell.runTest(JUnitShell.java:653)
[INFO]  at com.google.gwt.junit.client.GWTTestCase.runTest(GWTTestCase.java:441)
[INFO]  at junit.framework.TestCase.runBare(TestCase.java:134)
[INFO]  at junit.framework.TestResult$1.protect(TestResult.java:110)
[INFO]  at junit.framework.TestResult.runProtected(TestResult.java:128)
[INFO]  at junit.framework.TestResult.run(TestResult.java:113)
[INFO]  at junit.framework.TestCase.run(TestCase.java:124)
[INFO]  at com.google.gwt.junit.client.GWTTestCase.run(GWTTestCase.java:296)
[INFO]  at junit.framework.TestSuite.runTest(TestSuite.java:232)
[INFO]  at junit.framework.TestSuite.run(TestSuite.java:227)
[INFO]  at junit.framework.TestSuite.runTest(TestSuite.java:232)
[INFO]  at junit.framework.TestSuite.run(TestSuite.java:227)
[INFO]  at org.codehaus.mojo.gwt.test.MavenTestRunner.doRun(MavenTestRunner.java:105)
[INFO]  at junit.textui.TestRunner.start(TestRunner.java:180)
[INFO]  at org.codehaus.mojo.gwt.test.MavenTestRunner.main(MavenTestRunner.java:63)
[INFO]
[INFO] testHideLoading(com.myco.product.client.view.GwtTestAppView)  Time elapsed: 0 sec  <<< ERROR!

正如我所说,我能够很好地运行位于不同包(名为com.myco.product.client.xmltohtml)中的gwt测试,所以我不知道有什么不同。问题出在哪里?

糟糕的是,我的测试类不在我加载的模块识别的包中。程序包应该是"com.myco.cleaning.product.client.view"。更改程序包修复了所有问题。

最新更新