简体   繁体   中英

Excluding tests from execution by PIT

I have to exclude my integration tests from their execution by PIT. There is an option excludedTestClasses since version 1.3.0. I tried to pass over these tests by the following configration of the Maven plugin of PIT.

<plugin>
    <groupId>org.pitest</groupId>
    <artifactId>pitest-maven</artifactId>
    <version>1.3.1</version>
    <configuration>
        <verbose>true</verbose>
        <mutationThreshold>80</mutationThreshold>
        <targetClasses>
            <param>de.comp.proj.*</param>
        </targetClasses>
        <excludedTestClasses>
            <param>**/*IT.java</param>
        </excludedTestClasses>
    </configuration>
 </plugin>

However PIT is still executing all tests with the suffix IT . I had a look the the source but got lost in the night ;-)

So, how can I skip my integration tests?

PIT filters are matched against the class names in the compiled binary, not against the source file name.

Your filter should look something like

<excludedTestClasses>
    <param>de.comp.**.*IT</param>
</excludedTestClasses>    

de.comp.*IT excludes all tests in the package de.comp . Using de.comp.**.*IT all tests in subpackages are also ignored.

For those using the Gradle plugin :

pitest {
    excludedTestClasses = ['de.comp.**.*IT']
}

I use pitest-maven version 1.4.2.

This config works fine for me:

<excludedTestClasses>          
  <excludedTestClass>de.com.**.*IT</excludedTestClass>
</excludedTestClasses>

Maybe following syntax was for older versions of pitest-maven:

<excludedTestClasses>
    <param>de.comp.**.*IT</param>
</excludedTestClasses>   

For those using the Gradle plugin :

See configuration: http://pitest.org/quickstart/commandline/

pitest {
    excludedClasses = ['de.comp.**.*IT']
}

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM