问题标签 [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.
java - 坑突变测试:发现测试,没有奴才可能
我将 PIT Mutation Test 用于一个巨大的 java 程序(超过 450.000 LOC)。它全部分离为com.myProgramm.TheNormalClasses
和com.myProgramm.TheNormalClasses.Test
。所以我把我pom.xml
的改成com.myProgramm.TheNormalClasses.Test
这样:
那时我删除了配置标签,然后我的 Pit Test 找到了 0 个测试类来挖掘。将配置标签添加到我的类后,它会找到 5 个测试类,但不会使用它们。这是我的输出:
那么,这个错误信息是什么?我不明白这个问题。我以前从未在其他 Java 程序中遇到过这种情况,其中测试在同一个包中,但只在不同的文件夹中:src 和测试
我现在该怎么办?
java - 不影响返回的条件的突变测试
我正在为我的函数运行一个坑突变测试,我似乎无法为否定条件覆盖这条线。所以这是一个 if 语句,它执行一个子字符串来为服务调用构建一个 url。
所以突变没有覆盖 if 语句,因为条件不会改变返回。我怎样才能覆盖这条线?
谢谢!
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 看起来像这样
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
和位于我需要使用的targetTests
pom.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 上的注释,例如targetClasses
:targetTests
和additionalClasspathElements
.
我怎么能说 testClasses 在这个文件夹中,2.myProgramm.module1.Test
我在 pom.xml 中设置了。但是要缩小的普通 javaClasses 在这个包中:targetClasses
targetTests
2.myProgramm.module1
我怎么知道,走出你的测试文件夹并进入文件夹?
我还用普通的 javaClasses 给出了文件夹的纯路径,但没有反应。
你有想法吗?
附言。这不是我的程序。我没写。我只是在努力,以测试。我已经有 11 个其他的 Maven 和 Gradle 程序。我全力以赴。但这真是让人头疼!啊!
java - PITest 问题:属性“mainClass”是最终的,无法进一步更改
我最近将我的项目从 升级Java 8
到Java 11
了Gradle 6.5
。但是,当我运行命令时,./gradlew pitest
我收到以下错误:
这是我pitest
在我的设置build.gradle
:
这是我的pitest
相关依赖项:
我不确定这个mainClass
属性来自哪里,也没有找到关于这个问题的任何相关答案或文档。
java - 如果条件处于最糟糕的状态,则无法覆盖
我在代码中添加了两个条件:
n 代码if
被正确覆盖,但是我无法覆盖该else if
部分
我在下面添加了突变覆盖的代码
java - 删除对“com.some.Filename::someMethodName”的调用-> SURVIVED 意味着什么?
删除对“com.some.Filename::someMethodName”的调用-> SURVIVED 意味着什么。这是否意味着如果删除该方法调用,代码仍然可以正常工作?
log4j - 模拟静态方法时,突变测试覆盖失败
我正在尝试获取单元测试的突变覆盖率,但从以下位置得到奇怪的异常pitest
:
这是测试:
待测类:
单身人士:
看起来静态记录器字段在PowerMock
尝试实例化它时会导致问题,但我不知道为什么。如果有人可以帮助我找到此问题背后的原因,我将不胜感激。
使用的库:
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 知识。有什么建议吗?
code-coverage - PIT Coverage 生成 minion 异常退出
在 build.gradle 中添加所有必需的配置后,在我的项目中运行 ptest gradle 任务时,我看到以下堆栈跟踪。你能帮我解决这个问题吗?我正在使用 1.5.1 版本的插件。
根据https://github.com/szpak/gradle-pitest-plugin中的说明,更改已在 build.gradle 中完成