运行自定义PIT Mutation Engine插件的问题

时间:2017-01-13 14:56:55

标签: java maven classpath mutation-testing pitest

我正在为PIT编写一个自定义变异引擎,但我遇到麻烦让PIT找到它。我的猜测是,当使用项目运行PIT时,我没有将包含自己引擎的包放在正确的类路径中。要测试我的引擎我正在使用this code并且我正在使用Maven插件运行PIT。在pom.xml文件中,我编写了自定义引擎的名称,甚至是在additionalClassPathElements标记内的路径。似乎没什么用。 PIT一直说它找不到发动机。哪种安全验证是否是类路径问题的最佳方法?或者哪个最简单的让PIT找到我的包并能够使用该插件?

提前致谢,

1 个答案:

答案 0 :(得分:0)

问了这个问题已经有一段时间了。 由于PIT搜索外部组件的方式而未找到该插件。该问题已在1.2.1版中解决。当前版本是1.4.9。

您的插件应包含META_INF/MANIFEST.MF,用于声明以下字段:Implementation-Vendor-IdImplementation-Title。在Maven项目中,groupId将转到前者,artifactId将转到后者,因此您实际上不必做任何特别的事情。

最初,PIT使用Implementation-Vendor,默认情况下它将包含在pom.xml中声明的组织名称。就我而言,此值与groupId不同,因此PIT无法找到插件。

如评论中所述,pitest-plugin repository提供了有关如何创建自己的插件的出色示例。 pitest-descartespitest-evosuite-plugin是另外两个可能也有帮助的示例。