Reputation: 129
I need to make a mutation test with PITest, but I'm having a hard time trying to install it via Maven, when I try to run PIT to execute mutations and the test case, I receive this error in the cmd:
"No plugin found for for prefix 'org.pitest' in the current project and in the plugin groups"
Can someone help me solve this problem, please?
My code:
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();
}
}
My Tests:
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>
This is the error that appears on my 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
Upvotes: 0
Views: 1989
Reputation: 1466
You have to use the plugin like this.
<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:
Instead of latest, use the version 1.4.10
See the reference below link.
https://pitest.org/quickstart/maven/
It is also available in maven central, you can check this link.
https://search.maven.org/artifact/org.pitest/pitest-maven/1.4.10/maven-plugin
Upvotes: 1