为什么有些测试在mvn清理安装时失败,而在我单独运行它们时却没有



最近,我的项目从java 11迁移到了17,在用500 internal error执行mvn clean install命令后,我的一些测试突然开始失败。我想调试一个未能检测到问题的单独测试,令我惊讶的是,当我运行命令mvn -Dtest=TestClass#whenXthenY test时,测试通过了。

当我从IDE运行mvn clean install时,它也能正常工作。

我不知道这里会发生什么。该项目是一个Spring Boot项目。你知道这种行为的原因是什么吗?

您可能有一些测试泄漏(数据在测试之间保留(,因此测试的顺序可能很重要,并且可能在java版本之间发生更改。这可以是静态变量,从磁盘或外部服务存储/加载的东西,等等。

你把它们并行运行吗?否则,您可以检查测试的执行顺序是否相同。

这很难调试;最重要的是首先检查巡回测试是否真的很好地隔离。

错误是我对同一事物有两个依赖项(重叠(,当我升级到Java 17时,其中一个不起作用。

然后,根据我从哪里运行测试,它需要一个或另一个依赖项。

我删除了不起作用的多余依赖,并修复了所有问题。

相关内容

最新更新