gpt4 book ai didi

java - 是否可以将 Pitest 配置为存在依赖于 Maven 的 jar 文件而不是 Maven 模块本身的突变测试代码?

转载 作者:行者123 更新时间:2023-12-01 16:25:58 25 4
gpt4 key购买 nike

我们目前正在将并行构建引入到我们的 Maven 项目中,以减少构建时间。我们的 Maven 项目中有 4 个模块。

  1. 主应用
  2. 主应用突变测试
  3. 主应用集成测试
  4. 主应用接受测试

作为并行构建的一部分,我们正在并行构建模块 2,3 和 4(在模块 1 -“main-app”之后)。我们需要首先构建“main-app”,因为其他 3 个模块依赖于它。突变测试需要一段时间,因此我们不想在“主应用程序”中进行。

我们在“main-app-mutation-test”中使用 Pitest 进行突变测试。该模块包含的唯一实际 java 文件是测试代码(在标准 maven 目录结构中)。我们希望进行突变测试的代码存在于“main-app”中,并通过标准 Maven 依赖项继承。这是我们的 Pitest 插件配置(精简):

    <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 插件来完成,它要求单元测试与它们测试的代码位于同一模块中。

通常的方法是将突变测试作为配置文件的一部分运行。

关于java - 是否可以将 Pitest 配置为存在依赖于 Maven 的 jar 文件而不是 Maven 模块本身的突变测试代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59365177/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com