From 003efd6431d3712f00ad9011a3522af1098fca82 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Lo=C3=AFc=20P=C3=89RON?=
<44115467+nicerloop@users.noreply.github.com>
Date: Fri, 24 Apr 2020 19:02:14 +0200
Subject: [PATCH] Find occupied test packages if targetTests not provided, the
same way it is done for targetClasses (#758)
Find occupied test packages if targetTests not provided, the same way it is done for targetClasses
---
.../src/test/java/org/pitest/PitMojoIT.java | 10 ++++
.../pit-findOccupiedTestPackages/pom.xml | 48 +++++++++++++++++++
.../main/java/sources/DiscoveredClass.java | 9 ++++
.../src/test/java/tests/DiscoveredTest.java | 16 +++++++
.../maven/MojoToReportOptionsConverter.java | 23 ++++++++-
5 files changed, 105 insertions(+), 1 deletion(-)
create mode 100644 pitest-maven-verification/src/test/resources/pit-findOccupiedTestPackages/pom.xml
create mode 100644 pitest-maven-verification/src/test/resources/pit-findOccupiedTestPackages/src/main/java/sources/DiscoveredClass.java
create mode 100644 pitest-maven-verification/src/test/resources/pit-findOccupiedTestPackages/src/test/java/tests/DiscoveredTest.java
diff --git a/pitest-maven-verification/src/test/java/org/pitest/PitMojoIT.java b/pitest-maven-verification/src/test/java/org/pitest/PitMojoIT.java
index 5f422e23b..bfdc8158f 100755
--- a/pitest-maven-verification/src/test/java/org/pitest/PitMojoIT.java
+++ b/pitest-maven-verification/src/test/java/org/pitest/PitMojoIT.java
@@ -552,5 +552,15 @@ private void verifyPitReportTest(File testDir) throws Exception {
.contains("PIT Test Report"));
}
+ @Test
+ public void shouldFindOccupiedTestPackages() throws IOException, VerificationException {
+ File testDir = prepare("/pit-findOccupiedTestPackages");
+ verifier.executeGoal("test");
+ verifier.executeGoal("org.pitest:pitest-maven:mutationCoverage");
+
+ String actual = readResults(testDir);
+ assertThat(actual).contains(
+ "DiscoveredClass.java");
+ }
}
diff --git a/pitest-maven-verification/src/test/resources/pit-findOccupiedTestPackages/pom.xml b/pitest-maven-verification/src/test/resources/pit-findOccupiedTestPackages/pom.xml
new file mode 100644
index 000000000..7877d7c93
--- /dev/null
+++ b/pitest-maven-verification/src/test/resources/pit-findOccupiedTestPackages/pom.xml
@@ -0,0 +1,48 @@
+
+
+ 4.0.0
+ com.example
+ pitest-sample
+ 0.1-SNAPSHOT
+ pit maven findOccupiedTestPackages coverage
+
+
+ UTF-8
+
+
+
+
+ junit
+ junit
+ 4.8.2
+
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-compiler-plugin
+ 2.4
+
+
+ 1.7
+
+
+
+ org.pitest
+ pitest-maven
+ ${pit.version}
+
+ true
+ XML
+ false
+ true
+
+
+
+
+
+
diff --git a/pitest-maven-verification/src/test/resources/pit-findOccupiedTestPackages/src/main/java/sources/DiscoveredClass.java b/pitest-maven-verification/src/test/resources/pit-findOccupiedTestPackages/src/main/java/sources/DiscoveredClass.java
new file mode 100644
index 000000000..acc8b6fa6
--- /dev/null
+++ b/pitest-maven-verification/src/test/resources/pit-findOccupiedTestPackages/src/main/java/sources/DiscoveredClass.java
@@ -0,0 +1,9 @@
+package sources;
+
+public class DiscoveredClass {
+
+ public int add(int a, int b) {
+ return a + b;
+ }
+
+}
diff --git a/pitest-maven-verification/src/test/resources/pit-findOccupiedTestPackages/src/test/java/tests/DiscoveredTest.java b/pitest-maven-verification/src/test/resources/pit-findOccupiedTestPackages/src/test/java/tests/DiscoveredTest.java
new file mode 100644
index 000000000..27c15ed2d
--- /dev/null
+++ b/pitest-maven-verification/src/test/resources/pit-findOccupiedTestPackages/src/test/java/tests/DiscoveredTest.java
@@ -0,0 +1,16 @@
+package tests;
+
+import static junit.framework.Assert.assertEquals;
+
+import org.junit.Test;
+
+import sources.DiscoveredClass;
+
+public class DiscoveredTest {
+
+ @Test
+ public void testAdd() {
+ assertEquals(2, new DiscoveredClass().add(1, 1));
+ }
+
+}
diff --git a/pitest-maven/src/main/java/org/pitest/maven/MojoToReportOptionsConverter.java b/pitest-maven/src/main/java/org/pitest/maven/MojoToReportOptionsConverter.java
index 525e75a80..868f5b3df 100644
--- a/pitest-maven/src/main/java/org/pitest/maven/MojoToReportOptionsConverter.java
+++ b/pitest-maven/src/main/java/org/pitest/maven/MojoToReportOptionsConverter.java
@@ -236,7 +236,28 @@ private Collection> globStringsToPredicates(
}
private Collection> determineTargetTests() {
- return FCollection.map(this.mojo.getTargetTests(), Glob.toGlobPredicate());
+ return FCollection.map(useConfiguredTargetTestsOrFindOccupiedPackages(this.mojo.getTargetTests()), Glob.toGlobPredicate());
+ }
+
+ private Collection useConfiguredTargetTestsOrFindOccupiedPackages(
+ final Collection filters) {
+ if (!hasValue(filters)) {
+ this.mojo.getLog().info("Defaulting target tests to match packages in test build directory");
+ return findOccupiedTestPackages();
+ } else {
+ return filters;
+ }
+ }
+
+ private Collection findOccupiedTestPackages() {
+ String outputDirName = this.mojo.getProject().getBuild()
+ .getTestOutputDirectory();
+ if (outputDirName != null) {
+ File outputDir = new File(outputDirName);
+ return findOccupiedPackagesIn(outputDir);
+ } else {
+ return Collections.emptyList();
+ }
}
private Collection filteredDependencies() {