2012-02-10 12 views
5

mam prosty test na wtyczce maven:Testy maven wtyczek są niezgodne z Mavenie 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(); 
    } 
} 

z taką maven-surefire-plugin konfiguracji:

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

Do Maven 3.0.4 został zwolniony , mój SimpleMavenTest biegnie pomyślnie. Ale kiedy wykonać test przy użyciu maven 3.0.4, kolejny błąd został wystąpiły:

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) 

Spojrzałem tutaj: http://maven.apache.org/plugins/maven-surefire-plugin/examples/class-loading.html i próbował zmienić Maven-murowany-plugin konfigurację w taki sposób:

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

Wszystko działa poprawnie. Ale jeśli zrobię:

<forkMode>never</forkMode> 

powyższy błąd wystąpił. To dziwne, ponieważ na wersji 3.0.3 i poprzednich maven test był uruchamiany bez żadnych błędów. Jakieś pomysły?

+1

Mam podobną konfigurację, ale mam informacje o wersji na mojej konfiguracji surefire, która jest wymieniona w następujący sposób: $ {surefire.version}. nie jestem pewien, czy to mogłoby pomóc. możesz spróbować? – Venki

+0

czy masz wpis dla tego identyfikatora grupy w swoim pom? org.apache.maven.wagon Venki

+0

Próbowałem dodać $ {surefire.version}, ale błąd wystąpił ponownie. Mam ten wpis: org.apache.maven.plugins. Zastąpiłem go twoją próbą: org.apache.maven.wagon i uruchom test pomyślnie. Dzięki za pomoc! Ale potrzebuję tego działa z org.apache.maven.plugins i jak napisałem powyżej, jest to interesujące: dlaczego działa na maven 3.0.3 i nie działa na maven 3.0.4. – rdiachenko

Odpowiedz

1

Otworzyłem a bug na jira.codehaus.org i otrzymałem odpowiedź, że problem został rozwiązany w wtyczce maven-surefire v.2.11. Ponieważ użyłem wersji 2.10, wystąpił błąd. Najnowsza wersja wtyczki murowany 2.12, więc zmienić murowany konfigurację następująco:

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

i testy będą działać poprawnie.

+0

Dzięki człowieku, przez cały dzień obijałem głowę –

Powiązane problemy