java - 当 pitest 找不到测试类时

标签 java maven testing pitest

这似乎是一个很常见的问题,我个人至少偶然发现了几次。

一些主要原因是:

但是,今天我偶然发现了一个发现 0 个测试的新案例,我很难解决这个问题。让我们考虑这个项目:https://github.com/bonnyfone/vectalign .
这是一个小项目,只包含一个测试类:

src
 |
 +- main
 |   |
 |   ...
 |
 +- test
     |
     +- java
          |
          +- VectAlignTest.java

我在 pom.xml 中添加了 pitest:

<plugin>
    <groupId>org.pitest</groupId>
    <artifactId>pitest-maven</artifactId>
    <version>1.3.2</version>
</plugin>

我运行命令 mvn clean test org.pitest:pitest-maven:mutationCoverage。 虽然测试运行得很好,但出于某种原因 pitest 无法找到它们:

12:23:16 PM PIT >> INFO : MINION : 12:23:16 PM PIT >> INFO : Found  0 tests
...
================================================================================
- Statistics
================================================================================
>> Generated 910 mutations Killed 0 (0%)
>> Ran 0 tests (0 tests per mutation)

您可以在此处找到完整的 pom.xml:https://pastebin.com/F28ZpcMk
这是 mvn clean test org.pitest:pitest-maven:mutationCoverage 的完整输出:https://pastebin.com/tWHgq43a

现在我的问题是,在这种特殊情况下出了什么问题? pitest如何确定哪些是测试类?

非常感谢您的帮助:)

最佳答案

PITest 没有找到我的类或测试类,因为我没有将它们放在包中。一旦我将它们放入一个包中,一切都很好。我怀疑您还可以手动指定类和测试类位置。

在(现已删除的)链接问题中引用该答案:

I just spent a great deal of time with the same message

No mutations found. This probably means there is an issue with either the supplied classpath or filters.

我的问题很简单:我在 使用 Maven 的 IntelliJ。但是我没有包裹。我正在使用 默认包和 PITest 每次都失败。 PITest 有一个 如果您指定,可能仅适用于默认包的插件 类和测试类。但是所有的文件都说它 应该默认工作。详细的输出甚至表明 PITest 是 找到正确的项目文件夹,但仍然没有用。亨利 Cole 甚至足够优秀(PITest 的开发者)看我的 POM.xml 文件并确认它看起来不错。

总而言之,如果您将 Java 代码放在一个包中,PITest 会非常有效。

关于java - 当 pitest 找不到测试类时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49173603/

相关文章:

java - 在 Spring Boot 2.0 中使用自签名证书启用 HTTPS

java - Spring Security 可以接受同一用户的多个密码吗?

java - 跨浏览器登录?

tomcat - 无法编辑maven settings.xml

java - Spring web mvc 示例,引导,创建名称为 'jacksonObjectMapperBuilder' 的 bean 时出错

android - 使用 Mockito 和 Dagger 的 SharedPreferences

java - 如何让我的 Setter 与我单独的类(class)进行交互?

maven - 同时使用 maven-flatten-plugin 和 maven-shade-plugin

android - Robotium:为 .apk 文件创建测试项目

performance - 如何参数化json文件中的值 - loadrunner