我将项目从Java 1.5升级到Java 1.8,并且我的测试通过了Eclipse junit运行,并且当我使用“ mvn -Dtest = xxxx clean test”运行单个测试时也通过了,但是当我运行“ mvn clean install”测试时失败了,有什么主意吗?
答案 0 :(得分:1)
没有更多细节就不可能帮助回答您的特定问题,但是这里有一些检查的一般指导。
一个或多个单独的测试似乎没有正确初始化测试夹具或自行清理。较早的测试正在更改后续测试的环境。在这些有污染的测试之一之后运行的测试不会从干净,正确初始化的测试数据开始,并且会失败。单独运行时,将初始化测试数据,并通过以前失败的测试。
“环境”可能表示测试类变量,缓存,数据库,环境变量等。
这种情况发生时,在没有检查被测代码的情况下,不要立即假定测试已损坏。取决于被测代码正在执行的操作,失败的测试可能是有效的,指出了代码本身初始化或正确清除的问题。对于这些情况,测试已完成工作!
此外,请记住,不同的JVM可以按不同的顺序运行测试-在类内部以及在类之间。您的测试类不应假定测试将以特定的顺序运行,因此应正确地将每个测试相互隔离。