我在这里有一个奇怪的问题,我找不到原因:
在命令行上使用带有 maven(和 java 11)的 Pitest 时,它按预期工作,但是当通过声明性管道在 Jenkins-Server 上运行它时,它会导致错误。
部分来自我的 maven pom:
<build>
<plugins>
<plugin>
<groupId>org.pitest</groupId>
<artifactId>pitest-maven</artifactId>
<version>1.4.8</version>
<dependencies>
<dependency>
<groupId>org.pitest</groupId>
<artifactId>pitest-junit5-plugin</artifactId>
<version>0.8</version>
</dependency>
</dependencies>
<configuration>
<verbose>true</verbose>
</configuration>
</plugin>
</plugins>
</build>
我的 Jenkinsfile 的一部分:
stage('MutationTesting')
{
steps
{
bat 'mvn --batch-mode org.pitest:pitest-maven:mutationCoverage'
}
}
在此之前,将从管道中调用以下 Maven 命令:
mvn --batch-mode clean
mvn --batch-mode 编译
mvn --batch-mode compiler:testCompile surefire:test -Dmaven.test.failure.ignore=true
在命令行上准确调用这些命令时,pitest 可以完美运行。
比较日志记录结果时,它们几乎相等。
命令行的日志输出:
PIT >> FINE:最大可用内存为 3609 mb
PIT >> FINE : MINION : 安装 PIT 代理
PIT >> INFO : 向 minion 发送 13 个测试类
PIT >> INFO : 向 minion 发送测试
PIT >> INFO : MINION : 08:51:20 PIT >> FINE : 期待来自父级的 13 个测试类
PIT >> FINE : 收到的测试类
PIT >> INFO : 检查环境
PIT >> INFO : MINION : 08:51:20 PIT >> INFO : 找到 1 个测试
PIT >> INFO : MINION : 08:51:20 PIT >> INFO : 依赖分析将潜在测试的数量减少了 0
PIT >> INFO:MINION:08:51:20 PIT >> INFO:收到 1 个测试
PIT >> INFO : MINION : 08:51:20 PIT >> FINE : 运行 1 个单位
PIT >> INFO : MINION : 08:51:20 PIT >> FINE : 收集测试覆盖率描述 [testClass=de.test.Tests, name=creation()]
PIT >> FINE:覆盖生成器 Minion 退出正常
PIT >> INFO : 0 秒内计算的覆盖率。
PIT >> FINE:覆盖计算后使用的内存 42 mb
PIT >> FINE:覆盖计算后的可用内存 201 mb
[...突变输出削减]
Jenkins-Pipeline 的日志输出:
PIT >> FINE:最大可用内存为 1813 mb
PIT >> FINE : MINION : 安装 PIT 代理
PIT >> INFO : 向 minion 发送 13 个测试类
PIT >> INFO : 向 minion 发送测试
PIT >> INFO : MINION : 08:46:28 PIT >> FINE : 期待来自父级的 13 个测试类
PIT >> FINE : 收到的测试类
PIT >> INFO : 检查环境
PIT >> INFO : MINION : 08:46:29 PIT >> INFO : 找到 1 个测试
PIT >> INFO : MINION : 08:46:29 PIT >> INFO : 依赖分析将潜在测试的数量减少了 0
PIT >> INFO:MINION:08:46:29 PIT >> INFO:收到 1 个测试
PIT >> INFO : MINION : 08:46:29 PIT >> FINE : 运行 1 个单位
PIT >> INFO : MINION : 08:46:29 PIT >> FINE : 收集测试覆盖率描述 [testClass=de.test.Tests, name=creation()]
PIT >> FINE:覆盖生成器 Minion 退出正常 PIT >> INFO:在 1 秒内计算覆盖范围。PIT >> FINE:覆盖计算后使用的内存 43 mb PIT >> FINE:覆盖计算后的可用内存 177 mb PIT >> INFO:创建了 0 个变异测试单元 [INFO] ------------- -------------------------------------------------- --------- [信息] 构建失败 [信息] --------------------------------- --------------------------------------- [INFO] 总时间:3.644 s [INFO]完成于:2019-06-06T08:46:29+02:00 [INFO] ------------------------------- ----------------------------------------- [错误] 未能执行目标组织。 Pitest:pitest-maven:1.4.8:mutationCoverage(default-cli)在项目multiuploader上:执行目标org.pitest的default-cli:pitest-maven:1.4.8:mutationCoverage失败:未发现突变。这可能意味着提供的类路径或过滤器存在问题。[错误] 见http://pitest.org了解更多详情。
所以我只能假设环境有所不同 - 但哪一个?还是它是pitest中的一个错误?