pitest doesn't find tests

匿名 (未验证) 提交于 2019-12-03 10:10:24

问题:

I am facing a problem with the SonarQube project. I want to calculate some statistics about test quality and I am using pitest. Unfortunately, it doesn't find any test to mutate.

This is the pom.xml of the module that I am analyzing:

<?xml version="1.0" encoding="UTF-8"?> <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>    <parent>     <groupId>org.sonarsource.sonarqube</groupId>     <artifactId>sonarqube</artifactId>     <version>6.2-SNAPSHOT</version>   </parent>    <artifactId>sonar-core</artifactId>    <name>SonarQube :: Core</name>   <description>Library shared by analyzer and server</description>    <properties>     <sonar.exclusions>target/generated-sources/**/*,target/generated-test-sources/**/*</sonar.exclusions>   </properties>    <dependencies>     <dependency>       <groupId>com.google.code.findbugs</groupId>       <artifactId>jsr305</artifactId>       <scope>provided</scope>     </dependency>     <dependency>       <groupId>commons-codec</groupId>       <artifactId>commons-codec</artifactId>     </dependency>     <dependency>       <groupId>org.picocontainer</groupId>       <artifactId>picocontainer</artifactId>     </dependency>     <dependency>       <groupId>com.google.protobuf</groupId>       <artifactId>protobuf-java</artifactId>     </dependency>     <dependency>       <groupId>org.codehaus.sonar</groupId>       <artifactId>sonar-classloader</artifactId>     </dependency>     <dependency>       <groupId>${project.groupId}</groupId>       <artifactId>sonar-plugin-api</artifactId>     </dependency>     <dependency>       <groupId>org.sonarsource.update-center</groupId>       <artifactId>sonar-update-center-common</artifactId>     </dependency>      <!-- logging -->     <dependency>       <groupId>org.slf4j</groupId>       <artifactId>slf4j-api</artifactId>     </dependency>     <dependency>       <groupId>ch.qos.logback</groupId>       <artifactId>logback-classic</artifactId>     </dependency>     <dependency>       <groupId>ch.qos.logback</groupId>       <artifactId>logback-core</artifactId>     </dependency>     <dependency>       <groupId>org.slf4j</groupId>       <artifactId>jcl-over-slf4j</artifactId>     </dependency>     <dependency>       <groupId>org.slf4j</groupId>       <artifactId>log4j-over-slf4j</artifactId>     </dependency>      <dependency>       <!-- sonar-api-deps.jar is copied into target JAR file -->       <groupId>${project.groupId}</groupId>       <artifactId>sonar-plugin-api-deps</artifactId>       <version>${project.version}</version>       <optional>true</optional>       <scope>runtime</scope>     </dependency>       <!-- tests -->     <dependency>       <groupId>${project.groupId}</groupId>       <artifactId>sonar-testing-harness</artifactId>       <scope>test</scope>     </dependency>     <dependency>       <groupId>com.google.code.bean-matchers</groupId>       <artifactId>bean-matchers</artifactId>       <scope>test</scope>     </dependency>     <dependency>       <groupId>org.simpleframework</groupId>       <artifactId>simple</artifactId>       <version>4.1.21</version>       <scope>test</scope>     </dependency>   </dependencies>    <build>     <pluginManagement>       <plugins>         <plugin>           <groupId>org.basepom.maven</groupId>           <artifactId>duplicate-finder-maven-plugin</artifactId>           <configuration>             <ignoredDependencies>               <dependency>                 <groupId>${project.groupId}</groupId>                 <artifactId>sonar-plugin-api-deps</artifactId>               </dependency>             </ignoredDependencies>           </configuration>         </plugin>       </plugins>     </pluginManagement>     <plugins>       <plugin>           <groupId>org.pitest</groupId>           <artifactId>pitest-maven</artifactId>           <version>1.1.10</version>           <configuration>             <verbose>true</verbose>               <targetClasses>                   <param>org.sonar.core.*</param>               </targetClasses>               <targetTests>                   <param>org.sonar.core.*</param>               </targetTests>           </configuration>       </plugin>       <plugin>         <groupId>org.apache.maven.plugins</groupId>         <artifactId>maven-dependency-plugin</artifactId>         <executions>           <execution>             <id>copy-deprecated-api-deps</id>             <phase>generate-resources</phase>             <goals>               <goal>copy</goal>             </goals>             <configuration>               <artifactItems>                 <artifactItem>                   <groupId>${project.groupId}</groupId>                   <artifactId>sonar-plugin-api-deps</artifactId>                   <destFileName>sonar-plugin-api-deps.jar</destFileName>                 </artifactItem>               </artifactItems>               <outputDirectory>${project.build.outputDirectory}</outputDirectory>               <overWriteReleases>false</overWriteReleases>               <overWriteSnapshots>true</overWriteSnapshots>             </configuration>           </execution>         </executions>       </plugin>     </plugins>   </build> </project> 

But when I run:

mvn clean install org.pitest:pitest-maven:mutationCoverage 

it doesn't find tests, namely:

4:16:26 PM PIT >> INFO : Sending 0 test classes to minion 4:16:26 PM PIT >> INFO : Sent tests to minion 4:16:27 PM PIT >> INFO : MINION : 4:16:27 PM PIT >> INFO : Checking environment  4:16:27 PM PIT >> INFO : MINION : 4:16:27 PM PIT >> INFO : Found  0 tests  4:16:27 PM PIT >> INFO : MINION : 4:16:27 PM PIT >> INFO : Dependency analysis reduced number of potential tests by 0  4:16:27 PM PIT >> INFO : MINION : 4:16:27 PM PIT >> INFO : 0 tests received 

PS: the tests in maven are correctly executed:

Results :  Tests run: 402, Failures: 0, Errors: 0, Skipped: 0 

What am I wrong?

回答1:

You specified for the pitest plugin

<targetClasses>   <param>org.sonar.core.*</param> </targetClasses> <targetTests>   <param>org.sonar.core.*</param> </targetTests> 

Did you check, you have test classes in those packages?



标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!