spring 测试用例在Intellij中通过,但在Maven中未通过

34gzjxbg  于 2023-06-04  发布在  Spring
关注(0)|答案(1)|浏览(267)

我在Sping Boot Test -Test1.java -Test2.java -Test3.java的测试包中有一个像这样的测试包(使用Junit4)
现在,当我在IntelliJ中运行Test文件时,它完全正常,没有任何问题,但当我运行mvn test时,它失败了,我检查了只有在Test2.java在Test1.java之前运行时才会发生的错误。我知道Test类中的测试用例不会保持任何顺序,但对于Test包也是如此吗?

[ERROR] Please refer to /Users/s0r0e4g/Desktop/SPEED CHANGE/Config_ClubItemBenchMark/oia-configuration/target/surefire-reports for the individual test results.
[ERROR] Please refer to dump files (if any exist) [date].dump, [date]-jvmRun[N].dump and [date].dumpstream.
2ledvvac

2ledvvac1#

并且我检查了错误,该错误仅在Test2.java在www.example.com之前运行时才会发生Test1.java。我知道Test类中的测试用例不会保持任何顺序,但对于Test包也是如此吗?
我遇到过完全相同的场景,而且测试文件确实可以并且将以不同的顺序执行。
我们最终所做的虽然不是最佳实践,但却是这里提供的solution。这可能不是最佳实践,因为测试文件的顺序依赖性不是一个好的实践,但是如果你发现自己在一个巨大的项目中因为这个原因而失败,并且你不能重写大部分测试代码,那么使用这个作为解决方案是有意义的。
所以在你的情况下我会使用

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-surefire-plugin</artifactId>
    <configuration>
        <runOrder>alphabetical</runOrder>
    </configuration>
</plugin>

我会将Test2.java重命名为Test1.java,并将Test1.java重命名为Test2.java。这将确保它们在不同场景和机器中的执行顺序。

相关问题