Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Tests for maven plugins are incompatible with maven 3.0.4

I have a simple test for maven plugin:

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();
    }
}

with such maven-surefire-plugin configuration:

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

Until maven 3.0.4 has been released, my SimpleMavenTest run succesfully. But when I run the test using maven 3.0.4, the next error was occurred:

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)

I looked here: http://maven.apache.org/plugins/maven-surefire-plugin/examples/class-loading.html and tried to change maven-surefire-plugin configuration in a such way:

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

Everything works fine. But if I make:

<forkMode>never</forkMode>

the above error is occured. It's strange, because on maven 3.0.3 and previous maven versions the test was run without any errors. Any ideas?

like image 901
rdiachenko Avatar asked Nov 13 '22 10:11

rdiachenko


1 Answers

I opened a bug on jira.codehaus.org and got the answer that this trouble was resolved in maven-surefire-plugin v.2.11. As I used 2.10 version, the error was occurred. The latest surefire plugin version is 2.12, so change surefire configuration as follows:

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

and tests will run successfully.

like image 185
rdiachenko Avatar answered Nov 16 '22 04:11

rdiachenko