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 + 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() {