加入收藏 | 设为首页 | 会员中心 | 我要投稿 鄂州站长网 (https://www.0711zz.com/)- 数据分析、网络、云渲染、应用安全、大数据!
当前位置: 首页 > 编程开发 > Java > 正文

java – JUnit测试通过,但PIT表示该套件不是绿色的

发布时间:2020-08-02 12:36:31 所属栏目:Java 来源:互联网
导读:在尝试运行PIT突变测试时,我收到以下错误: mutationCoverage failed: All tests did not pass without mutation when calculating line coverage. Mutation testing requires a green suite. 当我进行正常的测试构建时,测试运行得很好,但是在运行突变测试阶

在尝试运行PIT突变测试时,我收到以下错误:

mutationCoverage failed: All tests did not pass without mutation when calculating line coverage. Mutation testing requires a green suite.

当我进行正常的测试构建时,测试运行得很好,但是在运行突变测试阶段时,他们据说会失败,但是没有提供任何细节.我已经了解了PIT Testing FAQ上市的原因,但我仍然不知道可能是错的.

我试过了:

将-Dthreads = 1选项添加到任何多线程问题的规则中
>找不到任何系统属性唯一的失败的几个测试
在正常运行中测试不被忽略

我应该尝试什么其他一些事情?还是其他方式调试这里可能发生什么?

解决方法

在覆盖阶段测试失败的常见原因是

> PIT接收测试不包括在普通测试配置中排除
>测试依赖于测试配置中设置的环境变量或其他属性,但在pitest配置中未设置
>测试具有在正常测试运行期间未显示的隐藏顺序依赖性
> PIT不喜欢你的技术堆栈中的东西 – 可能是一个JUnit测试运行器

听起来你已经消除了1&使叶3和4.

测试顺序依赖性可能很难发现.如果任何一个答案是肯定的,你可能有一个.

您的代码库是否包含可变静态? (例如单身人士)
您的测试是否会在数据库(内存或其他方式)中发生状态在测试之间持续存在?
您的测试是否修改磁盘上的文件?

上面可能还有很多其他原因.

如果您确信您的代码库中的依赖关系是不可能的,那么这些特定的测试就会出现问题.

很难猜出这可能是没有一些代码.你能发布一个仍然失败的测试的简化版本吗?

(编辑:鄂州站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读