当前位置: 首页 > 知识库问答 >
问题:

JUnit测试通过,但是PIT说套房不是绿色的

巫晋鹏
2023-03-14

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

突变覆盖率失败:在计算线路覆盖率时,如果没有突变,所有测试都不能通过。突变测试需要一个绿色套件。

当我进行正常的测试构建时,测试运行得很好,但在运行突变测试阶段时,它们可能会失败,但没有详细说明原因。我已经查看了PIT测试常见问题解答中列出的原因,但我仍然不知道可能出了什么问题。

我试过:

  • 将-Dthreads=1选项添加到任何多线程问题的规则中

还有什么我应该试试的?或者用其他方法来调试这里可能发生的事情?

共有1个答案

袁恩
2023-03-14

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

  1. 正常测试配置中不包括/排除坑拾取测试

听起来你已经淘汰了1个

测试顺序依赖关系可能很难发现。如果其中任何一个答案都是肯定的,你可能会有一个。

  • 您的代码库是否包含可变静态?(例如单身人士)

可能还有许多以上未列出的其他原因。

如果您确信在代码库中不可能存在顺序依赖关系,那么这些特定的测试就存在问题。

如果没有一些代码,很难猜测这可能是什么。你能发布一个仍然失败的测试的简化版本吗?

 类似资料:
  • 首先请原谅我可能的无知,专业的做事方式对我来说很新鲜,如果有什么我没有提到的,请告诉我,我会尽力给你你需要的信息。。。 所以我试图用maven在Eclipse中构建我的webapp,我有一个测试套件 这很好,当我右键单击并以Junit test运行测试时,所有测试都通过了。 当我以Maven build的形式运行它,并以打包一系列测试为目标时,失败了??? 我的maven surefire插件配置

  • 我试图在Eclipse中对我的Spring Boot项目进行单元测试。我遇到的问题是,我的@Autowire s被忽略了。 输出。 我认为这可能与顶部没有@RunWith(SpringRunner.class)有关,但如果我包括这一点,它会尝试运行我的主应用程序,这会引发异常,因为实例变量不是从环境中填充的: 我不确定它为什么要运行这个,而我所做的只是测试。

  • 然而,该项目有许多类似的“测试”: 这个特殊的类创建了一个示例数据库映像,供开发人员使用。诚然,我们可以创建直接的SQL脚本,但Java进程非常有用,因为其中的代码也可以从外部源(例如Liferay)查询数据 我们为此使用单元测试的原因是因为开发人员可以轻松地在IntelliJ中运行它来加载新的数据库映像。然而,这并不是真正的“测试”,而是使用测试运行器作为运行Java进程的快速方法。 我正在建立

  • 问题内容: 如何使用JUnit 4创建测试套件? 我看过的所有文档似乎都不适合我。而且,如果我使用Eclipse向导,它不会为我提供选择已创建的任何测试类的选项。 问题答案:

  • 我在所有集成测试中不断收到异常,而单元测试运行良好。所有异常如下所示: 我正在使用Jupiter进行测试。我的观点的上述例外指向data.sql脚本,我必须填充一些数据。对我来说,语法似乎没问题,也运行良好,这意味着如果使用邮递员进行测试,会生成记录: 还考虑了Spring Boot可能存在的配置问题,所以我在gradle中添加了jdbc-starter依赖项。但它似乎仍然失败。 以下是测试的一部

  • 问题内容: 我已经使用JUnit 4和spring-test库编写了一些JUnit测试。当我在Eclipse中运行测试时,可以正常运行并通过。但是,当我使用Maven运行它们(在构建过程中)时,它们无法给出与Spring相关的错误。我不确定是什么引起了问题,JUnit,Surefire或Spring。这是我的测试代码,spring配置以及从Maven获得的异常: PersonServiceTest