可以将 pitest 配置为存在依赖于 maven 的 jar 文件而不是 maven 模块本身的变异测试代码吗?
Can pitest be configured to mutation test code that exists a maven dependent jar file and not the maven module itself?
我们目前正在将并行构建引入我们的 Maven 项目以减少构建时间。我们的 maven 项目中有 4 个模块。
- 主应用程序
- main-app-mutation-test
- 主应用集成测试
- 主应用验收测试
作为并行构建的一部分,我们正在并行构建模块 2、3 和 4(在模块 1 之后 - 'main-app')。我们需要先构建 'main-app',因为其他 3 个模块依赖于它。突变测试需要一段时间,所以我们不想在 'main-app'.
中进行
我们在'main-app-mutation-test'中使用pitest进行突变测试。该模块包含的唯一实际 java 文件是测试代码(在标准 maven 目录结构中)。我们希望突变测试的代码存在于 'main-app' 中,并通过标准的 Maven 依赖项继承。这是我们最糟糕的插件配置(精简):
<plugin>
<groupId>org.pitest</groupId>
<artifactId>pitest-maven</artifactId>
<version>1.4.10-DUMMY-SNAPSHOT</version>
<executions>
<execution>
<id>default-cli</id>
<goals>
<goal>mutationCoverage</goal>
</goals>
<configuration>
<targetClasses>
<targetClass>com.dummy.*</targetClass>
</targetClasses>
<outputFormats>
<outputFormat>HTML</outputFormat>
</outputFormats>
<mutationThreshold>99</mutationThreshold>
<coverageThreshold>99</coverageThreshold>
<detectInlinedCode>true</detectInlinedCode>
<threads>4</threads>
<timestampedReports>false</timestampedReports>
<skip>false</skip>
<skipTests>false</skipTests>
</configuration>
</execution>
</executions>
</plugin>
但是当我们 运行 pitest 插件时,我们得到以下日志记录并且变异测试不是 运行。
[INFO] Skipping project because:
[INFO] - Project has no tests, it
is empty.
我曾希望 'targetClasses' 值可以告诉 pitest 什么 java 类 可以进行突变测试。该项目还通过 'maven-surefire-plugin' 运行 进行了单元测试,它发现要测试的测试和目标 类 都没有问题。
所以我的问题是,我们可以指定 类 进行变异测试,即使它们在继承的 jar 文件中并且不存在于模块本身中吗?
这不能通过 maven 插件完成,它要求单元测试与它们测试的代码位于同一模块中。
通常的方法是 运行 突变测试作为配置文件的一部分。
我们目前正在将并行构建引入我们的 Maven 项目以减少构建时间。我们的 maven 项目中有 4 个模块。
- 主应用程序
- main-app-mutation-test
- 主应用集成测试
- 主应用验收测试
作为并行构建的一部分,我们正在并行构建模块 2、3 和 4(在模块 1 之后 - 'main-app')。我们需要先构建 'main-app',因为其他 3 个模块依赖于它。突变测试需要一段时间,所以我们不想在 'main-app'.
中进行我们在'main-app-mutation-test'中使用pitest进行突变测试。该模块包含的唯一实际 java 文件是测试代码(在标准 maven 目录结构中)。我们希望突变测试的代码存在于 'main-app' 中,并通过标准的 Maven 依赖项继承。这是我们最糟糕的插件配置(精简):
<plugin>
<groupId>org.pitest</groupId>
<artifactId>pitest-maven</artifactId>
<version>1.4.10-DUMMY-SNAPSHOT</version>
<executions>
<execution>
<id>default-cli</id>
<goals>
<goal>mutationCoverage</goal>
</goals>
<configuration>
<targetClasses>
<targetClass>com.dummy.*</targetClass>
</targetClasses>
<outputFormats>
<outputFormat>HTML</outputFormat>
</outputFormats>
<mutationThreshold>99</mutationThreshold>
<coverageThreshold>99</coverageThreshold>
<detectInlinedCode>true</detectInlinedCode>
<threads>4</threads>
<timestampedReports>false</timestampedReports>
<skip>false</skip>
<skipTests>false</skipTests>
</configuration>
</execution>
</executions>
</plugin>
但是当我们 运行 pitest 插件时,我们得到以下日志记录并且变异测试不是 运行。
[INFO] Skipping project because:
[INFO] - Project has no tests, it is empty.
我曾希望 'targetClasses' 值可以告诉 pitest 什么 java 类 可以进行突变测试。该项目还通过 'maven-surefire-plugin' 运行 进行了单元测试,它发现要测试的测试和目标 类 都没有问题。
所以我的问题是,我们可以指定 类 进行变异测试,即使它们在继承的 jar 文件中并且不存在于模块本身中吗?
这不能通过 maven 插件完成,它要求单元测试与它们测试的代码位于同一模块中。
通常的方法是 运行 突变测试作为配置文件的一部分。