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

java - 在用户界面上执行突变测试是一种好习惯吗?

我和我的队友很难理解突变测试是否可以/应该在引用 Swing 类的 JUnit 测试上进行。

更准确地说,我们目前正在使用 Junit 4 和 Assertj Swing 来测试该大学的测试任务(使用 TDD)的接口。我们还使用 PITEST 作为突变测试框架。

我们使用 Eclipse 的 WindowBuilder 插件构建了 Swing 类,因此我们对类的结构没有太多控制。单元测试都是绿色的,但是当运行pit时,在这些类中会从pit中抛出大量异常,并且测试失败了。您可以在travis上看到 maven 日志。

由于我们刚刚开始了解测试世界,因此非常感谢实际处理这些事情的人的建议。

非常感谢你。

0 投票
0 回答
373 浏览

unit-testing - Kotlin 代表团,我应该测试什么?

在 Kotlin 中,强大的委托构造可用于通过重用现有实现来扩展现有接口的功能。

问题:

  • 我应该测试什么?测试示例中的 hashmap 不是此测试的目标。验证完整的实现似乎非常冗长,我宁愿验证正确字段的授权是否发生。
  • 使用突变测试时,例如使用PItest,我如何捕获所有突变?该报告显示了相当多的突变,我相信是正确的。Kotlin 编译器为所有委托创建字节码。
0 投票
0 回答
101 浏览

maven - PITEST 变异覆盖正在返回 SocketException

在运行clean test verify org.pitest:pitest-maven:mutationCoverage时,得到以下异常。

微服务有很多场景要执行,想知道如何解决这个问题。我在http://pitest.org/faq/中看到了一些细节,参考了PIT istaking forever to run部分,但不确定是否有办法增加线程数。

0 投票
3 回答
1543 浏览

java - 跳过在 Maven 构建中运行 PITest

我正在尝试从命令行运行 maven 构建并排除 PITest 运行任何突变。目前报告失败,我们需要能够提供一个参数来忽略运行突变测试或忽略结果并继续构建

我已经运行了一些参数,例如mvn package -Dpit.report=true

或者mvn package -Dmaven.report.skip=true

这是我的 pom 中的 PITest 设置

问题是它仍在运行 PITest 并导致构建失败

0 投票
1 回答
420 浏览

pitest - Pitest 没有运行 Kotlintest 测试

我在我的项目中使用 kotlintest,我想用 ptest 运行突变测试。

已经尝试单独使用pitest和junit5插件,但结果总是:

我在用着:

  • Pitest - 'info.solidsoft.gradle.pitest:gradle-pitest-plugin:1.4.5'
  • Pitest junit5 - 'org.pitest:pitest-junit5-plugin:0.9'
  • Koltintest - 'io.kotlintest:kotlintest-runner-junit5:3.4.2'

我知道 kotlintest 自 v3.3.0 起支持 ptest(根据此处),但我不知道如何使其工作。

任何想法如何使其正常运行?

谢谢!

0 投票
1 回答
814 浏览

java - Maven PITest 错误“在当前项目和插件组中找不到前缀 'org.pitest' 的插件”

我需要使用 PITest 进行突变测试,但是我很难通过 Maven 安装它,当我尝试运行 PIT 来执行突变和测试用例时,我在 cmd 中收到此错误:

“在当前项目和插件组中找不到前缀 'org.pitest' 的插件”

有人可以帮我解决这个问题吗?

我的代码:

我的测试:

pom.xml:

这是我的 cmd 上出现的错误:

0 投票
1 回答
112 浏览

mutation-testing - Pitclipse 中的 default 、 strong 和 all 运算符有什么区别?

我在 Eclipse 上使用 PITclipse 对代码运行 PIT 突变测试。PITclipse 中有三种类型的运算符:DEFAULT、STRONGER 和 ALL)。

它们与每个运算符中列出的突变体列表有什么不同?

0 投票
1 回答
439 浏览

java - 可以将pitest配置为突变测试代码存在maven依赖jar文件而不是maven模块本身吗?

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

  1. 主应用
  2. 主应用变异测试
  3. 主应用程序集成测试
  4. 主应用验收测试

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

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

但是当我们运行最糟糕的插件时,我们会得到以下日志,并且不会运行突变测试。

[INFO] 跳过项目,因为:
[INFO] - 项目没有测试,它是空的。

我曾希望 'targetClasses' 值能告诉 Pitest 哪些 Java 类要进行变异测试。该项目还通过“maven-surefire-plugin”运行单元测试,它发现要测试的测试类和目标类都没有问题。

所以我的问题是,我们能否指定要进行突变测试的类,即使它们在继承的 jar 文件中并且不存在于模块本身中?

0 投票
1 回答
544 浏览

java - PITest 在测试运行开始时挂起

我正在尝试在 light4j ( https://github.com/networknt/light-4j ) 的主版本上运行 PITest,这是我或多或少随机选择的一个项目,用于在真实世界代码上试用 PITest。

除了 light4j 的“cient”模块外,大多数模块的测试都完成了。跑步时

在 light-4j/client 文件夹中,正常的单元测试运行完成(所有测试都正常,跳过了 3 个),但 PITest 似乎没有生成和执行突变。最后的消息是

之后什么也没有发生。

light4j 的正常构建成功完成。

可能是什么问题呢?

[2020 年 2 月 5 日编辑:我已经分叉了 light4j 存储库:https ://github.com/jvermeir/light-4j 然后我执行了正常构建mvn clean install,因此所有工件都在我的本地 maven 存储库中。接下来我在 light4j 项目的根级别更改了 pom.xml,添加

在构建部分最后我在客户端文件夹中启用了 PiTest 执行了测试:mvn -X test org.pitest:pitest-maven:mutationCoverage > ../buildlog.txt 这会生成一个 build.txt 文件,但也会在终端中显示几行:

build.txt 的结尾如下所示:

0 投票
1 回答
110 浏览

unit-testing - 是否可以使用 Pit Mutation Test 提取每种测试方法的突变测试结果

我知道PIT Mutation Test 框架可以根据测试套件或测试类导出变异覆盖率信息。但是,我想知道是否有一个选项可以根据测试用例方法(@Test 注释下的测试用例)提取或导出突变覆盖率信息,以便我可以看到哪些测试用例写得好,哪些写得不好。如果不可能,我想到的最简单的解决方案是注释所有测试方法并仅取消注释其中一种测试方法,运行它并导出信息。我想知道是否有一个优雅的解决方案。

注意:我知道MuJava提供了这样的信息。