最近,我的项目从java 11迁移到了17,在用500 internal error
执行mvn clean install
命令后,我的一些测试突然开始失败。我想调试一个未能检测到问题的单独测试,令我惊讶的是,当我运行命令mvn -Dtest=TestClass#whenXthenY test
时,测试通过了。
当我从IDE运行mvn clean install
时,它也能正常工作。
我不知道这里会发生什么。该项目是一个Spring Boot项目。你知道这种行为的原因是什么吗?
您可能有一些测试泄漏(数据在测试之间保留(,因此测试的顺序可能很重要,并且可能在java版本之间发生更改。这可以是静态变量,从磁盘或外部服务存储/加载的东西,等等。
你把它们并行运行吗?否则,您可以检查测试的执行顺序是否相同。
这很难调试;最重要的是首先检查巡回测试是否真的很好地隔离。
错误是我对同一事物有两个依赖项(重叠(,当我升级到Java 17时,其中一个不起作用。
然后,根据我从哪里运行测试,它需要一个或另一个依赖项。
我删除了不起作用的多余依赖,并修复了所有问题。