我需要使用PITest进行突变测试,但是我很难通过Maven安装它,当我尝试运行PIT来执行突变和测试用例时,我在cmd中收到此错误:
“在当前项目中未找到前缀为'org.pitest'的插件
并在插件组中”
有人可以帮我解决这个问题吗?
我的代码:
package com.mateus;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Codigo {
public boolean verify(String word){
String regex = "^[a-zA-Z0-9_$]+$";
Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher(word);
if(word.substring(0, 1).matches("[0-9]")){
return false;
}
return matcher.matches();
}
}
我的测试:
package com.mateus;
import static org.junit.Assert.*;
import org.junit.Test;
public class CodigoTest {
Codigo c = new Codigo();
@Test
public void test() {
assertEquals(true, c.verify("teste"));
}
@Test
public void test2() {
assertEquals(false, c.verify("1teste"));
}
@Test
public void test3() {
assertEquals(false, c.verify("tes@te"));
}
}
pom.xml:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.mateus</groupId>
<artifactId>MavenMutacao</artifactId>
<version>0.0.1-SNAPSHOT</version>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.13-rc-1</version>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.pitest</groupId>
<artifactId>pitest-maven</artifactId>
<version>1.4.3</version>
<configuration>
<targetClasses>
<param>com.mateus*</param>
</targetClasses>
<targetTests>
<param>com.mateus*</param>
</targetTests>
</configuration>
</plugin>
</plugins>
</build>
</project>
这是出现在我的cmd上的错误:
C:\Users\mateu\eclipse-workspace\MavenMutacao>mvn org.pitest:pitest maven:mutationCoverage
[INFO] Scanning for projects...
Downloading from central: https://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven-metadata.xml
Downloading from central: https://repo.maven.apache.org/maven2/org/codehaus/mojo/maven-metadata.xml
Downloaded from central: https://repo.maven.apache.org/maven2/org/codehaus/mojo/maven-metadata.xml (20 kB at 14 kB/s)
Downloaded from central: https://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven-metadata.xml (14 kB at 9.3 kB/s)
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 2.303 s
[INFO] Finished at: 2019-11-19T16:39:59-02:00
[INFO] ------------------------------------------------------------------------
[ERROR] No plugin found for prefix 'org.pitest' in the current project and in the plugin groups [org.apache.maven.plugins, org.codehaus.mojo] available from the repositories [local (C:\Users\mateu\.m2\repository), central (https://repo.maven.apache.org/maven2)] -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/NoPluginFoundForPrefixException
最佳答案
您必须使用这样的插件。
<plugin>
<groupId>org.pitest</groupId>
<artifactId>pitest-maven</artifactId>
<version>1.4.10</version>
<configuration>
<targetClasses>
<param>com.mateus*</param>
</targetClasses>
<targetTests>
<param>com.mateus*</param>
</targetTests>
</configuration>
</plugin>
EIDT:
使用版本
1.4.10
代替最新版本请参阅下面的参考链接。
https://pitest.org/quickstart/maven/
它在Maven Central中也可用,您可以检查此链接。
https://search.maven.org/artifact/org.pitest/pitest-maven/1.4.10/maven-plugin