簡體   English   中英

並行測試運行期間maven-failsafe-plugin中的錯誤

[英]Error in maven-failsafe-plugin during parallel tests running

我有一個正在運行的應用程序,它運行集成測試沒有任何問題。 我想並行運行並添加

<parallel>classes</parallel> <useUnlimitedThreads>true</useUnlimitedThreads>

到pom文件中的maven-failsafe-plugin部分。

結果,本節如下所示

<plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-failsafe-plugin</artifactId>
            <executions>
                <execution>
                    <id>default</id>
                    <goals>
                        <goal>integration-test</goal>
                    </goals>
                    <configuration>
                        <includes>
                            <include>**/IntegrationTestSuite.java</include>
                        </includes>
                        <excludes>
                            <exclude>**/*Tests.java</exclude>
                            <exclude>**/*Test.java</exclude>
                        </excludes>
                        <parallel>classes</parallel>
                        <useUnlimitedThreads>true</useUnlimitedThreads>
                    </configuration>
                </execution>
            </executions>
        </plugin>

它運行測試,但在運行結束時出現錯誤

Failed to execute goal org.apache.maven.plugins:maven-failsafe-plugin:2.18.1:integration-test (default) on project pr: Execution default of goal org.apache.maven.plugins:maven-failsafe-plugin:2.18.1:integration-test failed: There was an error in the forked process org.apache.maven.surefire.testset.TestSetFailedException: java.lang.NullPointerException
at org.apache.maven.surefire.common.junit4.JUnit4RunListener.rethrowAnyTestMechanismFailures(JUnit4RunListener.java:213)
at org.apache.maven.surefire.junitcore.JUnitCoreWrapper.createRequestAndRun(JUnitCoreWrapper.java:109)
at org.apache.maven.surefire.junitcore.JUnitCoreWrapper.executeEager(JUnitCoreWrapper.java:78)
at org.apache.maven.surefire.junitcore.JUnitCoreWrapper.execute(JUnitCoreWrapper.java:54)
at org.apache.maven.surefire.junitcore.JUnitCoreProvider.invoke(JUnitCoreProvider.java:144)
at org.apache.maven.surefire.booter.ForkedBooter.invokeProviderInSameClassLoader(ForkedBooter.java:203)
at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:155)
at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:103) Caused by: java.lang.NullPointerException at org.apache.maven.surefire.junitcore.ConcurrentRunListener.testStarting(ConcurrentRunListener.java:129)
at org.apache.maven.surefire.common.junit4.JUnit4RunListener.testStarted(JUnit4RunListener.java:91)
at org.junit.runner.notification.SynchronizedRunListener.testStarted(SynchronizedRunListener.java:49)
at org.junit.runner.notification.RunNotifier$3.notifyListener(RunNotifier.java:121)
at org.junit.runner.notification.RunNotifier$SafeNotifier.run(RunNotifier.java:72)
at org.junit.runner.notification.RunNotifier.fireTestStarted(RunNotifier.java:118)
at de.codecentric.jbehave.junit.monitoring.JUnitScenarioReporter.beforeStory(JUnitScenarioReporter.java:100)
at org.jbehave.core.reporters.DelegatingStoryReporter.beforeStory(DelegatingStoryReporter.java:72)
at org.jbehave.core.reporters.ConcurrentStoryReporter.beforeStory(ConcurrentStoryReporter.java:117)
at org.jbehave.core.embedder.PerformableTree$PerformableStory.perform(PerformableTree.java:790)
at org.jbehave.core.embedder.PerformableTree.performCancellable(PerformableTree.java:422)
at org.jbehave.core.embedder.PerformableTree.perform(PerformableTree.java:393)
at org.jbehave.core.embedder.StoryManager$EnqueuedStory.call(StoryManager.java:292)
at org.jbehave.core.embedder.StoryManager$EnqueuedStory.call(StoryManager.java:266)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)

這里可能出什么問題了?

好吧,我不確定這是否行得通。

但是,如果某些測試方案描述中有括號,則JUnit似乎會失敗。 看一下這個問題

因此,嘗試從測試描述中刪除每個括號“()”,然后再次運行。 同樣,我不確定這是否行得通。 希望對您有幫助。

最終的解決方案是這樣的:

<plugin>
     <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-failsafe-plugin</artifactId>
            <executions>
                <execution>
                    <id>default</id>
                    <goals>
                        <goal>integration-test</goal>
                    </goals>
                    <configuration>
                        <systemPropertyVariables>
                            <CPU_NUMBER_MULTIPLIER_FOR_NUMBER_OF_THREADS_IN_TEST_SUITE_RUNNER>1
                            </CPU_NUMBER_MULTIPLIER_FOR_NUMBER_OF_THREADS_IN_TEST_SUITE_RUNNER>
                        </systemPropertyVariables>
                        <includes>
                            <include>**/IntegrationTestSuite.java</include>
                        </includes>
                        <excludes>
                            <exclude>**/*Tests.java</exclude>
                            <exclude>**/*Test.java</exclude>
                        </excludes>
                    </configuration>
                </execution>
            </executions>
        </plugin>

與來自這里的定制跑步者一起

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM