2012-02-10 24 views
5

tengo una prueba simple para plugin de Maven:Las pruebas de Maven plugins son incompatibles con Maven 3.0.4

public class SimpleMavenTest extends AbstractMojoTestCase { 

    @Override 
    protected void setUp() throws Exception { 
     super.setUp(); 
     // code 
    } 

    public void testCase() throws Exception { 
     // test case 
    } 

    @Override 
    protected void tearDown() throws Exception { 
     // code 
     super.tearDown(); 
    } 
} 

con tales maven-surefire-plugin configuración:

<build> 
    <plugins> 
    <plugin> 
     <groupId>org.apache.maven.plugins</groupId> 
     <artifactId>maven-surefire-plugin</artifactId> 
     <configuration> 
     <forkMode>never</forkMode> 
     </configuration> 
    </plugin> 
    </plugins> 
</build> 

Hasta Maven 3.0.4 ha sido liberado , mi SimpleMavenTest se ejecuta con éxito. Pero cuando corro la prueba usando Maven 3.0.4, se produjo el siguiente error:

java.lang.IllegalStateException: The internal default plexus-bootstrap.xml is missing. This is highly irregular, your plexus JAR is most likely corrupt. 
    at org.codehaus.plexus.DefaultPlexusContainer.initializeConfiguration(DefaultPlexusContainer.java:1052) 
    at org.codehaus.plexus.DefaultPlexusContainer.initialize(DefaultPlexusContainer.java:627) 
    at org.codehaus.plexus.PlexusTestCase.setUp(PlexusTestCase.java:119) 
    at org.apache.maven.plugin.testing.AbstractMojoTestCase.setUp(AbstractMojoTestCase.java:69) 
    at org.maven.test.MyMojoTest.setUp(MyMojoTest.java:12) 
    at junit.framework.TestCase.runBare(TestCase.java:128) 
    at junit.framework.TestResult$1.protect(TestResult.java:106) 
    at junit.framework.TestResult.runProtected(TestResult.java:124) 
    at junit.framework.TestResult.run(TestResult.java:109) 
    at junit.framework.TestCase.run(TestCase.java:120) 
    at junit.framework.TestSuite.runTest(TestSuite.java:230) 
    at junit.framework.TestSuite.run(TestSuite.java:225) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 

miré aquí: http://maven.apache.org/plugins/maven-surefire-plugin/examples/class-loading.html y trató de cambiar experto-segura-plugin configuración de manera tal:

<configuration> 
     <forkMode>once</forkMode> 
</configuration> 

Todo funciona bien. Pero si hago:

<forkMode>never</forkMode> 

se ha producido el error anterior. Es extraño, porque en maven 3.0.3 y las versiones anteriores de maven, la prueba se ejecutó sin ningún error. ¿Algunas ideas?

+1

Tengo la configuración similar, pero tengo información de versión en mi configuración surefire que se enumera como este $ {surefire.version}. no estoy seguro si podría ayudar. ¿puedes probarlo? – Venki

+0

¿Tiene una entrada para esta identificación de grupo en su pom? org.apache.maven.wagon Venki

+0

Intenté agregar $ {surefire.version}, pero el error ocurrió nuevamente. Tengo esta entrada: org.apache.maven.plugins. Lo reemplacé con su intento: org.apache.maven.wagon y la prueba se ejecuta succesfylly. ¡Gracias por tu ayuda! Pero lo necesito funciona con org.apache.maven.plugins y como escribí arriba, es interesante: por qué funciona en maven 3.0.3 y no funciona en maven 3.0.4. – rdiachenko

Respuesta

1

Abrí a bug en jira.codehaus.org y obtuve la respuesta que este problema se resolvió en maven-surefire-plugin v.2.11. Como utilicé la versión 2.10, se produjo el error. La última versión de plugin surefire es 2.12, por lo tanto, cambie la configuración segura de la siguiente manera:

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-surefire-plugin</artifactId> 
    <version>2.12</version> 
    <configuration> 
     <forkMode>never</forkMode> 
    </configuration> 
</plugin> 

y las pruebas se ejecutarán correctamente.

+0

Gracias, hombre, me he estado revolviendo la cabeza con esto todo el día –

Cuestiones relacionadas