问题标签 [pitest]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1158 浏览

gradle - Gradle - 仅在子项目上运行 Pitest

我试图让詹金斯在我的项目上运行最糟糕的。有一个带有子项目的父 build.gradle 的事实似乎是一个问题。

跑步时gradle pitest我得到:

12:14:17 PIT >> INFO : 向 minion 发送 0 个测试类

12:14:17 PIT >> INFO : 向 minion 发送测试

12:14:17 PIT >> 严重:生成覆盖范围时出错。请检查您的类路径是否包含 JUnit 4.6 或更高版本。

线程“main”org.pitest.util.PitError 中的异常:覆盖生成minion 异常退出。请检查类路径。

我尝试只为子项目配置pitest,如一些帖子中所建议的那样,但没有任何区别

如果我尝试在子项目上运行 ptest,例如gradle subOne:pitestgradle 说这样的任务不存在。

有什么建议吗?

0 投票
1 回答
381 浏览

gradlew - 父项目pitest失败,但如果单独执行子项目运行良好

我正在使用 gradle wrapper 来运行我的pitest。我有定义最糟糕的父 build.gradle。我的子项目没有任何小项目。如果我在单个项目上运行 Pitest,例如gradlew clean :myproject:pitest。然后pitest就成功了。但是,如果我尝试使用gradlew clean ptest 从父级运行 ptest。然后它失败并出现以下错误

org.pitest.coverage.execute.DefaultCoverageGenerator.calculateCoverage(DefaultCoverageGenerator.java:103) 在

org.pitest.coverage.execute.DefaultCoverageGenerator.calculateCoverage(DefaultCoverageGenerator.java:49) 在

org.pitest.mutationtest.tooling.MutationCoverage.runReport(MutationCoverage.java:115) at org.pitest.mutationtest.tooling.EntryPoint.execute(EntryPoint.java:116) at org.pitest.mutationtest.tooling.EntryPoint.execute( EntryPoint.java:49) 在

org.pitest.mutationtest.commandline.MutationCoverageReport.runReport(MutationCoverageReport.java:87) 在

org.pitest.mutationtest.commandline.MutationCoverageReport.main(MutationCoverageReport.java:45) 原因:org.pitest.util.PitError: Coverage generation minion异常退出。请检查类路径。

org.pitest.coverage.execute.DefaultCoverageGenerator.gatherCoverageData(DefaultCoverageGenerator.java:137) 在

org.pitest.coverage.execute.DefaultCoverageGenerator.calculateCoverage(DefaultCoverageGenerator.java:87)

当我使用大于错误中提到的 4.6 的 JUNIT 4.12 时,任何人都可以指导可能出现的问题。

0 投票
1 回答
215 浏览

console - Pitest:如何将日志输出重定向到文件?

我将使用 Maven 的 Pitest (PIT) 应用到 Java 项目以进行突变分析。控制台的管道运算符仅捕获与 Maven 相关的输出,但不捕获 PIT 的输出。(这在 Linux 和 Windows 上都会发生。)

如何将控制台上显示的日志输出重定向到文件?

0 投票
1 回答
694 浏览

java - Java PIT 类路径问题

我有一个文件夹“mutant”,其中包含一个文本文件,其中只有一行名为java.utils.Collection. 我使用 Randoop 生成了测试用例并将它们保存在同一个文件夹中。测试用例的名称为 RegressionTest*.java 我现在正在尝试运行 PIT 以生成突变体。我根据http://pitest.org/quickstart/commandline/键入的命令如下---

我得到的错误是Exception in thread "main". org.Pitest.help.PitHelpError: No mutations found. This probably means there is an issue with either the supplied classpath or filters

我相信这个问题与targetClasses有关。有人有什么想法吗?

0 投票
1 回答
2156 浏览

java - 在 Intellij IDEA 中生成 Pitest 报告失败

我在 IntelliJ IDEA 中使用 Pitest 进行突变测试(插件:https ://plugins.jetbrains.com/plugin/7119-pit-mutation-testing-idea-plugin )。运行所有测试用例后,我在执行结束时收到以下消息:

线程“main”org.pitest.help.PitHelpError 中的异常:计算行覆盖率时,所有测试都没有通过突变。突变测试需要绿色套件。有关详细信息,请参阅http://pitest.org 。 在 org.pitest.coverage.execute.DefaultCoverageGenerator.verifyBuildSuitableForMutationTesting(DefaultCoverageGenerator.java:109) 在 org.pitest.coverage.execute.DefaultCoverageGenerator.calculateCoverage(DefaultCoverageGenerator.java:94) 在 org.pitest.coverage.execute.DefaultCoverageGenerator.calculateCoverage (DefaultCoverageGenerator.java:49) 在 org.pitest.mutationtest.tooling.MutationCoverage.runReport(MutationCoverage.java:115) 在 org.pitest.mutationtest.tooling.EntryPoint.execute(EntryPoint.java:117) 在 org.pitest。 org.pitest.mutationtest.commandline.MutationCoverageReport.runReport(MutationCoverageReport.java:87) 上的 mutationtest.tooling.EntryPoint.execute(EntryPoint.java:49) org.pitest.mutationtest.commandline.MutationCoverageReport.main(MutationCoverageReport.java: 45)

进程以退出代码完成 1 在浏览器中打开报告

我无法在浏览器中打开报告,因为未生成文件。

我已经编辑了 Pitest 配置:

我错过了什么?

谢谢

0 投票
2 回答
693 浏览

java - 当任何 PIT 突变失败而不是突变覆盖率时,maven build 可能会失败?

我正在为我的项目使用 ptest-maven 插件,如果有任何突变失败,我希望 maven 构建失败。

但我看不到允许我这样做的配置选项。我可以看到mutationThresholdcoverageThreshold,但这些都不起作用。

理想情况下,我想使用 PIT 来确保我编写的测试不会失败任何突变,而不是尝试满足一揽子覆盖率指标。

有没有办法做到这一点?

当前的Maven配置:

0 投票
1 回答
428 浏览

mutation-testing - PITEST增量分析找不到本地hash文件

我目前正在尝试 PITest,到目前为止它工作正常。但是,它非常慢,到目前为止唯一的解决方案是使用增量分析,这可能会解决缓慢的问题。我试图按照文档中的描述进行设置。这是我的配置:

但是,在实践中,我没有看到 PITest 将 historyInput 和 historyOutput 考虑在内,而是在我看到的日志中

我尝试了很多不同的设置,但它们似乎都不起作用。有什么我想念的吗?

更新

最后,事实证明插件定义来自 parent-pom,并且在继承的 child-pom 中覆盖它是部分可能的。

0 投票
2 回答
3958 浏览

java - 坑突变 - if ( x !=null ) return null else throw new RuntimeException

我有一个返回自定义对象的方法

它的单元测试检查getTheObject()方法返回的对象不为空

并且测试通过。

当使用 Pitest运行突变测试时,它会显示一个SURVIVED突变,如下所示:

问题是我们的单元测试应该是什么样子才能摆脱这个问题和KILL那个突变

0 投票
1 回答
495 浏览

maven - Pitest找不到突变

我尝试运行“mvn clean test”来获得我的测试的突变覆盖率,但它找不到任何东西。我使用了很多不同的设置,但我找不到解决方案。我的设置可能有误吗?

Pom.xml

重要的日志消息:

0 投票
5 回答
5362 浏览

java - 我的 PITEST 不会运行。覆盖生成minion异常退出。我需要帮助才能正确配置我的 pom.xml

运行mvn org.pitest:pitest-maven:mutationCoverage时出现如下错误( Environment: Windows 10, Maven 3.6.1, Java 11, junit-jupiter 5.4.1, pitest 1.4.7

参考:https ://github.com/ooroor/hellostrangeworld/blob/make_pitest_work/pom.xml