Tengo una aplicación GWT construida en Maven, ahora tratado de realizar un simple análisis de GWT como abajo:¿Cómo puedo usar las pruebas maven y jUnit juntas?
public class GwtTestLaughter extends GWTTestCase {
/**
* Specifies a module to use when running this test case. The returned
* module must include the source for this class.
*
* @see com.google.gwt.junit.client.GWTTestCase#getModuleName()
*/
@Override
public String getModuleName() {
return "com.sample.services.joker.laughter.Laughter";
}
/**
* Add as many tests as you like
*/
public void testSimple() {
assertTrue(true);
}
}
y en el archivo pom.xml, configurado el GWT-maven-plugin y experto-surefire- plugin como bramido:
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>gwt-maven-plugin</artifactId>
<version>2.1.0-1</version>
<configuration>
<!-- Use the 'war' directory for GWT hosted mode -->
<output>${basedir}/war</output>
<webXml>${basedir}/war/WEB-INF/web.xml</webXml>
<runTarget>index.html</runTarget>
<!-- Make sure the GWT compiler uses Xerces -->
<extraJvmArgs>
-Dgwt.style=DETAILED -Xmx512M -Xss1024k -XX:MaxPermSize=128m -Djavax.xml.parsers.DocumentBuilderFactory=org.apache.xerces.jaxp.DocumentBuilderFactoryImpl -Djavax.xml.parsers.SAXParserFactory=org.apache.xerces.jaxp.SAXParserFactoryImpl -Dlogback.configurationFile=./src/test/resources/logback-test.xml
</extraJvmArgs>
</configuration>
<executions>
<execution>
<goals>
<goal>compile</goal>
<goal>test</goal>
</goals>
</execution>
</executions>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<useFile>false</useFile>
<forkMode>once</forkMode>
<argLine>-Xmx128m</argLine>
<systemPropertyVariable>
<property>
<name>log4j.configuration</name>
<value>log4j.properties</value>
</property>
</systemPropertyVariables>
</configuration>
<executions>
<execution>
<id>unit-test</id>
<phase>test</phase>
<goals>
<goal>test</goal>
</goals>
<configuration>
<skip>false</skip>
<includes>
<include>**/*Test.java</include>
<includes>
<excludes>
<exclude>**/GwtTest*.java</exclude>
</excludes>
</configuration>
</execution>
<execution>
<id>integration-test</id>
<phase>integration-test</phase>
<goals>
<goal>test</goal>
</goals>
<configuration>
<skip>true</skip>
<includes>
<include>**/GwtTest*.java</include>
<includes>
<excludes>
<exclude>**/*Test.java</exclude>
</excludes>
</configuration>
</execution>
<executions>
</plugin>
Cuando me encontré con 'mvn test' en la línea de comandos, que puede ver sólo las pruebas normales Junit corrieron (el que tiene nombre de archivo Test.java), cuando ejecuté 'mvn integration-test', todavía veo todas las pruebas, incluidas la prueba normal de Junit y la prueba Gwt (las que tienen el nombre de archivo GwtTest .java) ejecutadas.
Pregunta 1:
¿Cómo puedo totalmente excluir a correr la prueba Junit normal durante la prueba para la integración? o eso es imposible? Debido a que en el ciclo de vida de maven predeterminado, la fase de prueba se define para existir antes de la prueba de integración, no hay forma de omitir la fase de prueba para ejecutar una prueba de integración pura.
Desde que mezclé todo el código de pruebas bajo/carpeta src/test/java, cuando me encontré con la 'integración-mvn test' y observaba la salida en la ventana de línea de comandos, vi lo siguiente:
[INFO] running com.sample.services.joker.laughter.client.GwtTestLaughter
..
[INFO] Validating newly compiled units
[INFO] [ERROR] Errors in 'file:...src/test/java/com/sample/joker/laughter/client/file1Test.java'..
[INFO] [ERROR] Line 42: No source code is available for type...; did you forget to inherit a required module?
...
Pregunta 2:
No entiendo esto, la prueba gwt es muy simple, por qué validaría un * Test.java no relacionado y buscaría su código fuente. aunque finalmente se desarrolló correctamente con la prueba aprobada, ¿cómo puedo deshacerme de esos desagradables mensajes de error?
Tal vez debería olvidarme del plugin gwt-mavin y seguir con las pruebas clásicas de Juint.