这似乎是一个相当普遍的问题,我个人偶然发现它至少几次。
其中一些主要原因是:
targetTests:pitest doesn't find testsassert关键字:pitest not able to locate junit test然而,今天我偶然发现了一个0测试的新案例,我很难解决这个问题。让我们考虑一下这个项目:https://github.com/bonnyfone/vectalign。
这是一个小项目,只包含一个测试类:
src
|
+- main
| |
| ...
|
+- test
|
+- java
|
+- VectAlignTest.java我在pom.xml中添加了最可怜的
<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的完整输出
现在我的问题是,在这个特殊的情况下出了什么问题?如何确定哪个测试类是测试类?
你的帮助将不胜感激:)
发布于 2018-04-04 01:35:00
PITest没有找到我的类或测试类,因为我没有将它们放在包中。一旦我把它们放在一个包裹里,一切都很好。我怀疑您也可以手动指定类和测试类位置。
在(现已删除的)链接问题上引用这一答案:
我只是花了很多时间在同一个信息上 没有发现突变。这可能意味着提供的类路径或过滤器存在问题。我的问题很简单:我使用Maven在IntelliJ中创建了几个测试项目。但我没有包裹。我使用的是默认包,每次PITest都失败了。PITest有一个插件,如果您指定类和测试类,它可能只使用默认包。但是所有的文档都说它在默认情况下应该能工作。一个详细的输出甚至显示PITest找到了正确的项目文件夹,但仍然无法工作。Henry甚至足够好(PITest的开发人员)来查看我的POM.xml文件并确认它看起来很好。 总之,如果将PITest代码放在包中,那么它的工作效果很好。
发布于 2018-03-13 18:46:32
我也面临着同样的问题。对于我来说,指定确切的测试包是有帮助的。在你的例子中,也许你可以添加:
<configuration>
<targetTests>
<param>VectAlignTest*</param>
</targetTests>
</configuration>但当然,这是一个相当肮脏的解决办法。也许有人知道问题的根源。
https://stackoverflow.com/questions/49173603
复制相似问题