Skip to content

Commit

Permalink
Merge pull request #66 from pitest/feature/pitest_190_support
Browse files Browse the repository at this point in the history
update for pitest 1.9.0
  • Loading branch information
hcoles committed Jun 23, 2022
2 parents 6038950 + 1201475 commit 6e8411d
Show file tree
Hide file tree
Showing 9 changed files with 319 additions and 71 deletions.
6 changes: 3 additions & 3 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -20,10 +20,10 @@
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<assertj.version>3.14.0</assertj.version>
<junit.platform.version>1.8.0</junit.platform.version>
<junit.version>5.8.0</junit.version>
<junit.platform.version>1.8.2</junit.platform.version>
<junit.version>5.8.2</junit.version>
<mockito.version>2.7.6</mockito.version>
<pitest.version>1.4.11</pitest.version>
<pitest.version>1.9.0</pitest.version>
<cucumber.version>5.0.0</cucumber.version>
</properties>

Expand Down
8 changes: 7 additions & 1 deletion src/main/java/org/pitest/junit5/JUnit5TestUnit.java
Original file line number Diff line number Diff line change
Expand Up @@ -26,13 +26,14 @@
import org.junit.platform.launcher.core.LauncherFactory;
import org.pitest.testapi.AbstractTestUnit;
import org.pitest.testapi.Description;
import org.pitest.testapi.ExecutedInDiscovery;
import org.pitest.testapi.ResultCollector;

/**
*
* @author Tobias Stadler
*/
public class JUnit5TestUnit extends AbstractTestUnit {
public class JUnit5TestUnit extends AbstractTestUnit implements ExecutedInDiscovery {

private final Class<?> testClass;

Expand Down Expand Up @@ -92,4 +93,9 @@ public void executionFinished(TestIdentifier testIdentifier, TestExecutionResult
launcher.execute(launcherDiscoveryRequest);
}


@Override
public String toString() {
return "JUnit5TestUnit[" + testIdentifier.getUniqueId() + "]";
}
}
57 changes: 35 additions & 22 deletions src/main/java/org/pitest/junit5/JUnit5TestUnitFinder.java
Original file line number Diff line number Diff line change
Expand Up @@ -26,16 +26,17 @@
import org.junit.platform.engine.Filter;
import org.junit.platform.engine.TestExecutionResult;
import org.junit.platform.engine.discovery.DiscoverySelectors;
import org.junit.platform.engine.support.descriptor.ClassSource;
import org.junit.platform.engine.support.descriptor.MethodSource;
import org.junit.platform.launcher.Launcher;
import org.junit.platform.launcher.TagFilter;
import org.junit.platform.launcher.TestIdentifier;
import org.junit.platform.launcher.core.LauncherDiscoveryRequestBuilder;
import org.junit.platform.launcher.core.LauncherFactory;
import org.junit.platform.launcher.listeners.SummaryGeneratingListener;
import org.pitest.testapi.Description;
import org.pitest.testapi.TestGroupConfig;
import org.pitest.testapi.TestUnit;
import org.pitest.testapi.TestUnitExecutionListener;
import org.pitest.testapi.TestUnitFinder;

/**
Expand All @@ -57,7 +58,7 @@ public JUnit5TestUnitFinder(TestGroupConfig testGroupConfig, Collection<String>
}

@Override
public List<TestUnit> findTestUnits(Class<?> clazz) {
public List<TestUnit> findTestUnits(Class<?> clazz, TestUnitExecutionListener executionListener) {
if(clazz.getEnclosingClass() != null) {
return emptyList();
}
Expand All @@ -77,7 +78,8 @@ public List<TestUnit> findTestUnits(Class<?> clazz) {
throw new IllegalArgumentException("Error creating tag filter", e);
}

TestIdentifierListener listener = new TestIdentifierListener();
TestIdentifierListener listener = new TestIdentifierListener(clazz, executionListener);

launcher.execute(LauncherDiscoveryRequestBuilder
.request()
.selectors(DiscoverySelectors.selectClass(clazz))
Expand All @@ -91,25 +93,33 @@ public List<TestUnit> findTestUnits(Class<?> clazz) {
}

private class TestIdentifierListener extends SummaryGeneratingListener {
private final List<TestIdentifier> identifiers = new ArrayList<>();

List<TestIdentifier> getIdentifiers() {
return unmodifiableList(identifiers);
}

@Override
public void executionStarted(TestIdentifier testIdentifier) {
if (testIdentifier.isTest()) {
// filter out testMethods
if (includedTestMethods != null && !includedTestMethods.isEmpty()
&& testIdentifier.getSource().isPresent()
&& testIdentifier.getSource().get() instanceof MethodSource
&& !includedTestMethods.contains(((MethodSource)testIdentifier.getSource().get()).getMethodName())) {
return;
}
identifiers.add(testIdentifier);
}
}
private final Class<?> testClass;
private final TestUnitExecutionListener l;
private final List<TestIdentifier> identifiers = new ArrayList<>();

public TestIdentifierListener(Class<?> testClass, TestUnitExecutionListener l) {
this.testClass = testClass;
this.l = l;
}

List<TestIdentifier> getIdentifiers() {
return unmodifiableList(identifiers);
}

@Override
public void executionStarted(TestIdentifier testIdentifier) {
if (testIdentifier.isTest()) {
// filter out testMethods
if (includedTestMethods != null && !includedTestMethods.isEmpty()
&& testIdentifier.getSource().isPresent()
&& testIdentifier.getSource().get() instanceof MethodSource
&& !includedTestMethods.contains(((MethodSource)testIdentifier.getSource().get()).getMethodName())) {
return;
}
l.executionStarted(new Description(testIdentifier.getUniqueId(), testClass));
identifiers.add(testIdentifier);
}
}


@Override
Expand All @@ -119,6 +129,9 @@ public void executionFinished(TestIdentifier testIdentifier, TestExecutionResult
if (!identifiers.contains(testIdentifier)) {
identifiers.add(testIdentifier);
}
l.executionFinished(new Description(testIdentifier.getUniqueId(), testClass), false);
} else if (testIdentifier.isTest()) {
l.executionFinished(new Description(testIdentifier.getUniqueId(), testClass), true);
}
}

Expand Down
Loading

0 comments on commit 6e8411d

Please sign in to comment.