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?
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.
链接地址: http://www.djcxy.com/p/61404.html上一篇: 有没有“摩卡maven插件”?