GWT: тестовый класс com.myco.clearing.commons.xml.XMLNodeTest не найден в модуле - PullRequest
1 голос
/ 16 ноября 2011

У меня есть проект Maven (3.0.3) / GWT (2.4).Я пытаюсь написать несколько тестовых примеров JUnit, но сталкиваюсь с проблемами.Все мои тесты расширяют GWTTestCase и включают этот код ...

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

Файл "ProductPlus.gwt.xml" находится в моем каталоге src / main / java.Чтобы включить это в мой classpath, я настроил это для моего surefire-плагина ...

        <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 clean test", я получаю все эти ошибки, включая эту ...

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» (выше).Какие другие конфигурации мне нужно сделать, чтобы исправить эту ошибку?- Дэйв

1 Ответ

1 голос
/ 16 ноября 2011

Пакет для вашего теста должен быть в клиентском classpath для указанного модуля. Основываясь на имени модуля, ваш тест, вероятно, принадлежит пакету com.myco.clearing.product.client или его подпакету.

...