我已经将maven从3.5升级到3.9.6。到目前为止,我尚未更改 pom.xml 中的其他配置或升级了 Surefire 版本。
我的项目 pom.xml 中的 Surefire 配置如下所示:
<build>
<sourceDirectory>src/main/someCodeFolder</soureDirectory>
<testDirectory>src/test/someTestFolder</testDirectory>
<testOutputDirectory>target/mytests</testDirectory>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.17</version>
</plugin>
</plugins>
</pluginManagement>
</build>
之前运行测试时,它们将从
lib/lib-component/target/mytests
级别执行。
自从升级到 maven 3.9.6 以来,测试失败,因为我的一些路径引用具有
../dependency/xyz
,因为它预计从 target/mytests
级别运行。
我知道我应该使用绝对路径,但在这种情况下,3.9.6 env 配置中发生了哪些变化/可能发生了变化,导致测试从库级别执行,而不是测试输出目录级别?
仅供参考,我使用surefire 上的workingDirectory 选项解决了这个问题。
已添加
<configuration>
<workingdDirectory>target/test-classes</workingDirectory>
</configuration>
插件的 pom xml。