如何使用Maven surefire按顺序运行测试
在互联网上到处搜索之后,我把我的问题贴在这里寻找可能的答案。首先,很抱歉我的英语不好,我会说法语 我正试图在Jenkins中为一个持续集成项目运行Java测试。但是Maven同时运行测试。前10个测试需要按顺序运行,因为它们初始化数据库和一些模板 我在官方网页上找到了这个链接: 但是当我在Java测试类上使用如何使用Maven surefire按顺序运行测试,maven,unit-testing,jenkins,junit,maven-surefire-plugin,Maven,Unit Testing,Jenkins,Junit,Maven Surefire Plugin,在互联网上到处搜索之后,我把我的问题贴在这里寻找可能的答案。首先,很抱歉我的英语不好,我会说法语 我正试图在Jenkins中为一个持续集成项目运行Java测试。但是Maven同时运行测试。前10个测试需要按顺序运行,因为它们初始化数据库和一些模板 我在官方网页上找到了这个链接: 但是当我在Java测试类上使用@NotThreadSafe时,他们说我出现了一个错误: 错误:找不到符号 无法分析错误消息:符号:类NotThreadSafe 我使用Maven 2.2.1和Junit 4.6 你知道我该
@NotThreadSafe
时,他们说我出现了一个错误:
错误:找不到符号
无法分析错误消息:符号:类NotThreadSafe
我使用Maven 2.2.1和Junit 4.6
你知道我该怎么做吗
编辑:my pom.xml
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<includes>
<include>**/P99ReleaseTestSuite.java</include>
</includes>
<!--
<excludes> <exclude>**/*Test.java</exclude> </excludes>
-->
<skipExec>${surefire.tests.execution.skip}</skipExec>
<testFailureIgnore>${surefire.tests.execution.ignore-error}</testFailureIgnore>
<forkMode>once</forkMode>
<argLine>-Xms512m -Xmx2048m</argLine>
</configuration>
</plugin>
org.apache.maven.plugins
maven surefire插件
**/P99ReleaseTestSuite.java
${surefire.tests.execution.skip}
${surefire.tests.execution.ignore error}
一旦
-Xms512m-Xmx2048m
我在linux服务器上运行这些测试。在windows上,在我的eclipse中,所有测试都是按顺序运行的首先这意味着你没有单元测试,你有集成测试,你不应该使用JUnit运行,因为没有定义的执行顺序(最好使用TestNG,它可以定义这样的顺序),maven surefire插件也不是正确的方式(maven failsafe插件)。此外,您需要在maven surefire插件中关闭并行运行测试(我记不清选项了,因为您使用的是如此旧的Junit版本)。除此之外,请长时间使用Maven 3+原因。谢谢您的回答。我不能使用Maven 3,因为我正在开发一个已有10多年历史的软件。在这个项目中,Maven、Junit和Java都很老了,每天对我来说都是一场战斗。然而,在我的eclipse中,我能够毫无问题地运行这些测试。这怎么可能呢?你可以使用Maven 3,因为Maven 3可以使用JDK 1.3来编译和运行代码测试……但是你必须将Maven的运行时和你的代码分开(关键字:toolchains)。如果您在Eclipse中运行测试,那么您运行的不是启动Eclipse时使用的JDK,而是在Eclipse中使用的另一个编译器……此外,我早就升级了这个旧项目了……首先,这意味着您没有单元测试,您有不应该使用JUnit运行的集成测试因为没有定义执行顺序(最好使用TestNG来定义这样的顺序),maven surefire插件也不是正确的方式(maven failsafe插件)。此外,您需要在maven surefire插件中关闭并行运行测试(我记不清选项了,因为您使用的是如此旧的Junit版本)。除此之外,请长时间使用Maven 3+原因。谢谢您的回答。我不能使用Maven 3,因为我正在开发一个已有10多年历史的软件。在这个项目中,Maven、Junit和Java都很老了,每天对我来说都是一场战斗。然而,在我的eclipse中,我能够毫无问题地运行这些测试。这怎么可能呢?你可以使用Maven 3,因为Maven 3可以使用JDK 1.3来编译和运行代码测试……但是你必须将Maven的运行时和你的代码分开(关键字:toolchains)。如果您在Eclipse中运行测试,那么您运行的不是启动Eclipse时使用的JDK,而是在Eclipse中使用不同的编译器……此外,我早就升级了这个旧项目了。。。