问题标签 [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 投票
0 回答
807 浏览

java - 坑突变测试:发现测试,没有奴才可能

我将 PIT Mutation Test 用于一个巨大的 java 程序(超过 450.000 LOC)。它全部分离为com.myProgramm.TheNormalClassescom.myProgramm.TheNormalClasses.Test。所以我把我pom.xml的改成com.myProgramm.TheNormalClasses.Test这样:

那时我删除了配置标签,然后我的 Pit Test 找到了 0 个测试类来挖掘。将配置标签添加到我的类后,它会找到 5 个测试类,但不会使用它们。这是我的输出:

那么,这个错误信息是什么?我不明白这个问题。我以前从未在其他 Java 程序中遇到过这种情况,其中测试在同一个包中,但只在不同的文件夹中:src 和测试

我现在该怎么办?

0 投票
0 回答
99 浏览

java - 不影响返回的条件的突变测试

我正在为我的函数运行一个坑突变测试,我似乎无法为否定条件覆盖这条线。所以这是一个 if 语句,它执行一个子字符串来为服务调用构建一个 url。

所以突变没有覆盖 if 语句,因为条件不会改变返回。我怎样才能覆盖这条线?

谢谢!

0 投票
0 回答
177 浏览

maven - Pitest 报告聚合目标抱怨传递依赖

我根据https://pitest.org/aggregating_tests_across_modules/在一个 Maven 模块项目(Maven 版本 3.5.4)中集成了 Pitest。

当运行mvn clean package日志显示目标模块(即应该执行 Pitest 的模块)的 Pitest 执行时,我确认实际生成了结果文件。

但是,我收到报告模块的以下错误消息:

jackson-databind是目标模块的依赖关系,因此是报告模块的传递依赖关系。在我看来,report-aggregate目标还试图分析启用 Pitest 的模块的传递依赖关系。

项目配置是否有错误?这是一个已知的错误?我能做些什么?

我尝试将reporting模块中target modules的范围改为provided,并且我也将reporting module的packing设置为pom,但无济于事。

配置

我在父 POM 中配置了 Pitest,如下所示:

目标模块 POM 的每个都包含以下部分:

最后报告模块 POM 看起来像这样

0 投票
1 回答
459 浏览

java - Pitest:如何在不同的模块中设置正确的路径

我有一个巨大的项目,我正在用 Pitest 测试突变测试。该项目采用 OSGi 形式,所有模块都分开。我有这个结构:

|-1.myProgramm-parent
 |-pom.xml
 |-2.myProgramm.module1
  |-pom.xml
 |-2.myProgramm.module1.Test
  |-pom.xml
 |-3.myProgramm.module2
  |-pom.xml
 |-3.myProgramm.module2.Test
   |-pom.xml
...等等。

现在我从我需要的所有 Pitest 配置中放入 pom.xml 1.myProgramm-parent(取自 Pitest.org 的官方网站)。targetClasses和位于我需要使用的targetTestspom.xml 中。2.myProgramm.module1.Test

Pitest 找到所有 7 个测试类以进行最小化。并发送它们。然后gathering for test description也很好。Coverage generator Minion excited ok. 然后:created 0 mutation test units.

并显示构建失败。No mutations found.

我已经尝试了所有可能出现在 Pitest.org 上的注释,例如targetClassestargetTestsadditionalClasspathElements.

我怎么能说 testClasses 在这个文件夹中,2.myProgramm.module1.Test我在 pom.xml 中设置了。但是要缩小的普通 javaClasses 在这个包中:targetClassestargetTests2.myProgramm.module1

我怎么知道,走出你的测试文件夹并进入文件夹?

我还用普通的 javaClasses 给出了文件夹的纯路径,但没有反应。

你有想法吗?

附言。这不是我的程序。我没写。我只是在努力,以测试。我已经有 11 个其他的 Maven 和 Gradle 程序。我全力以赴。但这真是让人头疼!啊!

0 投票
1 回答
2882 浏览

java - PITest 问题:属性“mainClass”是最终的,无法进一步更改

我最近将我的项目从 升级Java 8Java 11Gradle 6.5。但是,当我运行命令时,./gradlew pitest我收到以下错误:

这是我pitest在我的设置build.gradle

这是我的pitest相关依赖项:

我不确定这个mainClass属性来自哪里,也没有找到关于这个问题的任何相关答案或文档。

0 投票
0 回答
109 浏览

java - 如果条件处于最糟糕的状态,则无法覆盖

我在代码中添加了两个条件:
n 代码if被正确覆盖,但是我无法覆盖该else if部分

我在下面添加了突变覆盖的代码

0 投票
3 回答
3015 浏览

java - 删除对“com.some.Filename::someMethodName”的调用-> SURVIVED 意味着什么?

删除对“com.some.Filename::someMethodName”的调用-> SURVIVED 意味着什么。这是否意味着如果删除该方法调用,代码仍然可以正常工作?

0 投票
1 回答
562 浏览

log4j - 模拟静态方法时,突变测试覆盖失败

我正在尝试获取单元测试的突变覆盖率,但从以下位置得到奇怪的异常pitest

这是测试:

待测类:

单身人士:

看起来静态记录器字段在PowerMock尝试实例化它时会导致问题,但我不知道为什么。如果有人可以帮助我找到此问题背后的原因,我将不胜感激。

使用的库:

0 投票
1 回答
406 浏览

android - 配置 gradle-pitest-plugin 时获取 CustomMessageMissingMethodException

我正在尝试对我的 Android 本地 UnitTests 进行突变测试。我找到了https://pitest.org/框架,我试图从这里使用“官方”推荐的 gradle 插件来包含它:https ://gradle-pitest-plugin.solidsoft.info/

Gradle Wrapper 版本:6.5.1

但我不知道如何启动并运行它。插件网页上的文档非常零散,所以我不知道我的 gradle 配置是否正确。

我的build.gradle文件:

我的build.gradle (app)文件:

通过这种方法,IDE (AndroidStudio 4) gradle sync 告诉我:

Caused by: org.gradle.internal.metaobject.AbstractDynamicObject$CustomMessageMissingMethodException: Could not find method pitest() for arguments [build_w05scwyltsg8pepn5z5mp7e1$_run_closure3@651693d3] on project ':app' of type org.gradle.api.Project.

如果我尝试通过这样做,gradlew pitest我会得到相同的结果。

我最好的猜测是我缺乏很多 gradle 知识。有什么建议吗?

0 投票
1 回答
1917 浏览

code-coverage - PIT Coverage 生成 minion 异常退出

在 build.gradle 中添加所有必需的配置后,在我的项目中运行 ptest gradle 任务时,我看到以下堆栈跟踪。你能帮我解决这个问题吗?我正在使用 1.5.1 版本的插件。

根据https://github.com/szpak/gradle-pitest-plugin中的说明,更改已在 build.gradle 中完成