如何使用Maven surefire按顺序运行测试

如何使用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 你知道我该

在互联网上到处搜索之后,我把我的问题贴在这里寻找可能的答案。首先,很抱歉我的英语不好,我会说法语

我正试图在Jenkins中为一个持续集成项目运行Java测试。但是Maven同时运行测试。前10个测试需要按顺序运行,因为它们初始化数据库和一些模板

我在官方网页上找到了这个链接: 但是当我在Java测试类上使用
@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中使用不同的编译器……此外,我早就升级了这个旧项目了。。。