没有发现突变PitTest Maven

问题描述

第一次尝试使用pitTest和maven,

使用IntelliJ Idea。

对于以下pom.xml代码段:

        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
                <version>2.22.1</version>
            </plugin>
            <plugin>
                <groupId>org.pitest</groupId>
                <artifactId>pitest-maven</artifactId>
                <version>1.4.9</version>
                <configuration>
                    <verbose>true</verbose>
                </configuration>
                <dependencies>
                    <dependency>
                        <groupId>org.pitest</groupId>
                        <artifactId>pitest-junit5-plugin</artifactId>
                        <version>0.12</version>
                    </dependency>
                </dependencies>

            </plugin>
        </plugins>

我得到以下堆栈跟踪:

[INFO] 
[INFO] --- pitest-maven:1.4.9:mutationCoverage (default-cli) @ Junit_Test ---
[INFO] Found plugin : Default csv report plugin
[INFO] Found plugin : Default xml report plugin
[INFO] Found plugin : Default html report plugin
[INFO] Found plugin : Static initializer code detector plugin
[INFO] Found plugin : Static initializer filter plugin
[INFO] Found plugin : Excluded annotations plugin
[INFO] Found plugin : Inlined finally block filter plugin
[INFO] Found plugin : Try with resources filter
[INFO] Found plugin : Implicit null check filter
[INFO] Found plugin : For each loop filter
[INFO] Found plugin : Logging calls filter
[INFO] Found plugin : Infinite for loop filter
[INFO] Found plugin : Long running iterator loop filter
[INFO] Found plugin : For loop counter filter
[INFO] Found plugin : Kotlin junk mutations filter
[INFO] Found plugin : Max mutations per class limit
[INFO] Found plugin : Equals shortcut equivalent mutant filter
[INFO] Found plugin : Trivial return vals equivalence filter
[INFO] Found plugin : Mutant export plugin
[INFO] Found shared classpath plugin : Default mutation engine
[INFO] Found shared classpath plugin : JUnit 5 test framework support
[INFO] Found shared classpath plugin : JUnit plugin
[INFO] Found shared classpath plugin : TestNG plugin
[INFO] Adding org.pitest:pitest-junit5-plugin to SUT classpath
[INFO] Adding org.pitest:pitest to SUT classpath
[INFO] Mutating from C:\Users\Lenovo\IdeaProjects\Junit_Test_2\target\classes
[INFO] Defaulting target classes to match packages in build directory
4:57:36 AM PIT >> INFO : ---------------------------------------------------------------------------
4:57:36 AM PIT >> INFO : Enabled (+) and disabled (-) features.
4:57:36 AM PIT >> INFO : -----------------------------------------
4:57:36 AM PIT >> INFO : +FFBLOCK        Filters mutations in code duplicated by finally block inlining
4:57:36 AM PIT >> INFO : +FSTATI         Filters mutations in static initializers and code called only from them
4:57:36 AM PIT >> INFO : +FSEQUIVEQUALS  Filters equivalent mutations that affect only performance in short cutting equals methods
4:57:36 AM PIT >> INFO : +FFEACH         Filters mutations in compiler generated code that implements for each loops
4:57:36 AM PIT >> INFO : +FINFINC        Filters mutations to increments that may cause infinite loops
4:57:36 AM PIT >> INFO : +FFLOOP         Filters any mutations to increments in for loops as they may cause timeouts
4:57:36 AM PIT >> INFO : +FRETEQUIV      Filters return vals mutants with bytecode equivalent to the unmutated class
4:57:36 AM PIT >> INFO : +FINULL         Filters mutations in compiler generated code that checks for null by calling getClass
4:57:36 AM PIT >> INFO : +FTRYWR         Filters mutations in code generated for try with resources statements
4:57:36 AM PIT >> INFO : +FKOTLIN        Filters out junk mutations in bytecode created by compiler for kotlin language features
4:57:36 AM PIT >> INFO : +FSTAtiniT      Filters mutations in static initializers and code called only from them
4:57:36 AM PIT >> INFO : +FLOGCALL       Filters mutations in code that makes calls to logging frameworks
4:57:36 AM PIT >> INFO : +FINFIT         Filters mutations that may cause infinite loops by removing calls to iterator.next
4:57:36 AM PIT >> INFO : +FANN           Filters mutations in classes and methods with matching annotations of class or runtime retention
4:57:36 AM PIT >> INFO :   [annotation]    Annotation to avoid (full package name not required)
4:57:36 AM PIT >> INFO : -CLASSLIMIT     Limits the maximum number of mutations per class
4:57:36 AM PIT >> INFO :   [limit]         Integer value for maximum mutations to create per class
4:57:36 AM PIT >> INFO : -EXPORT         Exports mutants bytecode and other details to disk
4:57:36 AM PIT >> INFO : ---------------------------------------------------------------------------
4:57:36 AM PIT >> FINE : Running report with ReportOptions [targetClasses=[.*],excludedMethods=[],excludedClasses=[],excludedTestClasses=[],codePaths=[C:\Users\Lenovo\IdeaProjects\Junit_Test_2\target\classes],reportDir=C:\Users\Lenovo\IdeaProjects\Junit_Test_2\target\pit-reports,historyInputLocation=null,historyOutputLocation=null,sourceDirs=[C:\Users\Lenovo\IdeaProjects\Junit_Test_2\src\main\java,C:\Users\Lenovo\IdeaProjects\Junit_Test_2\src\test\java],classpathelements=[C:\Users\Lenovo\IdeaProjects\Junit_Test_2\target\test-classes,C:\Users\Lenovo\IdeaProjects\Junit_Test_2\target\classes,C:\Users\Lenovo\.m2\repository\org\junit\jupiter\junit-jupiter-api\5.4.2\junit-jupiter-api-5.4.2.jar,C:\Users\Lenovo\.m2\repository\org\apiguardian\apiguardian-api\1.0.0\apiguardian-api-1.0.0.jar,C:\Users\Lenovo\.m2\repository\org\opentest4j\opentest4j\1.1.1\opentest4j-1.1.1.jar,C:\Users\Lenovo\.m2\repository\org\junit\platform\junit-platform-commons\1.4.2\junit-platform-commons-1.4.2.jar,C:\Users\Lenovo\.m2\repository\org\junit\jupiter\junit-jupiter-engine\5.4.2\junit-jupiter-engine-5.4.2.jar,C:\Users\Lenovo\.m2\repository\org\junit\platform\junit-platform-engine\1.4.2\junit-platform-engine-1.4.2.jar,C:\Users\Lenovo\.m2\repository\org\pitest\pitest-junit5-plugin\0.12\pitest-junit5-plugin-0.12.jar,C:\Users\Lenovo\.m2\repository\org\pitest\pitest\1.4.9\pitest-1.4.9.jar],mutators=[],features=[],dependencyAnalysisMaxdistance=-1,jvmArgs=[-Djava.awt.headless=true],numberOfThreads=1,timeoutFactor=1.25,timeoutConstant=3000,targetTests=[],loggingClasses=[],maxMutationsPerClass=0,verbose=true,failWhenNoMutations=true,outputs=[HTML],groupConfig=TestGroupConfig [excludedGroups=[],includedGroups=[]],fullMutationMatrix=false,mutationUnitSize=0,shouldCreateTimestampedReports=true,detectInlinedCode=true,exportLineCoverage=false,mutationThreshold=0,coverageThreshold=0,mutationEngine=gregor,javaExecutable=null,includeLaunchClasspath=true,properties={},maxSurvivors=0,excludedRunners=[],includedTestMethods=[],testPlugin=junit5,useClasspathJar=false,skipFailingTests=false]
4:57:36 AM PIT >> FINE : System class path is C:\Program Files\JetBrains\IntelliJ IDEA Educational Edition 2020.2.1\plugins\maven\lib\maven3\boot\plexus-classworlds-2.6.0.jar;C:\Program Files\JetBrains\IntelliJ IDEA Educational Edition 2020.2.1\plugins\maven\lib\maven3\boot\plexus-classworlds.license;C:\Program Files\JetBrains\IntelliJ IDEA Educational Edition 2020.2.1\lib\idea_rt.jar
4:57:36 AM PIT >> FINE : Maximum available memory is 1776 mb
4:57:36 AM PIT >> FINE : MINION : Installing PIT agent
4:57:36 AM PIT >> INFO : Sending 0 test classes to minion
4:57:36 AM PIT >> INFO : Sent tests to minion
4:57:36 AM PIT >> FINE : Coverage generator Minion exited ok
4:57:36 AM PIT >> INFO : Calculated coverage in 0 seconds.
4:57:36 AM PIT >> FINE : Used memory after coverage calculation 42 mb
4:57:36 AM PIT >> FINE : Free Memory after coverage calculation 110 mb
4:57:36 AM PIT >> INFO : Created  0 mutation test units

显示以下错误消息:

Failed to execute goal org.pitest:pitest-maven:1.4.9:mutationCoverage (default-cli) on project Junit_Test: Execution default-cli of goal org.pitest:pitest-maven:1.4.9:mutationCoverage Failed: No mutations found. This probably means there is an issue with either the supplied classpath or filters.

我尝试过:

->添加targetClasses和targetTests配置参数(堆栈跟踪中源目录中的一个

->将。*添加为targetClasses和targetTests

两者都给出相同的错误

类的.java文件位于project_dir / src / main / java中 测试类的.java文件位于project_dir / src / test / java

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)