From 2ed693ee090be0de1352b3a867dc91daa0f5b2cf Mon Sep 17 00:00:00 2001 From: Henry Coles Date: Tue, 3 Jan 2023 11:12:36 +0000 Subject: [PATCH 1/2] make excludedRunners parameter available via commandline --- .../pitest/mutationtest/commandline/OptionsParser.java | 9 +++++++++ .../mutationtest/commandline/OptionsParserTest.java | 7 +++++++ .../org/pitest/mutationtest/config/ConfigOption.java | 7 ++++++- 3 files changed, 22 insertions(+), 1 deletion(-) diff --git a/pitest-command-line/src/main/java/org/pitest/mutationtest/commandline/OptionsParser.java b/pitest-command-line/src/main/java/org/pitest/mutationtest/commandline/OptionsParser.java index 1d275dcbb..1ce954289 100644 --- a/pitest-command-line/src/main/java/org/pitest/mutationtest/commandline/OptionsParser.java +++ b/pitest-command-line/src/main/java/org/pitest/mutationtest/commandline/OptionsParser.java @@ -56,6 +56,7 @@ import static org.pitest.mutationtest.config.ConfigOption.EXCLUDED_CLASSES; import static org.pitest.mutationtest.config.ConfigOption.EXCLUDED_GROUPS; import static org.pitest.mutationtest.config.ConfigOption.EXCLUDED_METHOD; +import static org.pitest.mutationtest.config.ConfigOption.EXCLUDED_RUNNERS; import static org.pitest.mutationtest.config.ConfigOption.EXCLUDED_TEST_CLASSES; import static org.pitest.mutationtest.config.ConfigOption.EXPORT_LINE_COVERAGE; import static org.pitest.mutationtest.config.ConfigOption.FAIL_WHEN_NOT_MUTATIONS; @@ -127,6 +128,8 @@ public class OptionsParser { private final ArgumentAcceptingOptionSpec failWhenNoMutations; private final ArgumentAcceptingOptionSpec skipFailingTests; private final ArgumentAcceptingOptionSpec codePaths; + + private final OptionSpec excludedRunnersSpec; private final OptionSpec excludedGroupsSpec; private final OptionSpec includedGroupsSpec; private final OptionSpec includedTestMethodsSpec; @@ -311,6 +314,10 @@ public OptionsParser(Predicate dependencyFilter) { .describedAs( "Globs identifying classpath roots containing mutable code"); + this.excludedRunnersSpec = parserAccepts(EXCLUDED_RUNNERS).withRequiredArg() + .ofType(String.class).withValuesSeparatedBy(',') + .describedAs("JUnit4 runners to exclude"); + this.includedGroupsSpec = parserAccepts(INCLUDED_GROUPS).withRequiredArg() .ofType(String.class).withValuesSeparatedBy(',') .describedAs("TestNG groups/JUnit categories to include"); @@ -474,6 +481,8 @@ private ParseResult parseCommandLine(final ReportOptions data, setTestGroups(userArgs, data); + data.setExcludedRunners(this.excludedRunnersSpec.values(userArgs)); + data.setIncludedTestMethods(this.includedTestMethodsSpec.values(userArgs)); data.setJavaExecutable(this.javaExecutable.value(userArgs)); diff --git a/pitest-command-line/src/test/java/org/pitest/mutationtest/commandline/OptionsParserTest.java b/pitest-command-line/src/test/java/org/pitest/mutationtest/commandline/OptionsParserTest.java index 216f0bb12..f3b9d533b 100644 --- a/pitest-command-line/src/test/java/org/pitest/mutationtest/commandline/OptionsParserTest.java +++ b/pitest-command-line/src/test/java/org/pitest/mutationtest/commandline/OptionsParserTest.java @@ -382,6 +382,13 @@ public void shouldParseCommaSeparatedListOfIncludedTestMethods() { .getIncludedTestMethods()); } + @Test + public void shouldParseCommaSeparatedListOfExcludedTestRunners() { + final ReportOptions actual = parseAddingRequiredArgs("--excludedRunners", + "foo,bar"); + assertThat(actual.getExcludedRunners()).containsExactly("foo", "bar"); + } + @Test public void shouldParseMutationUnitSize() { final ReportOptions actual = parseAddingRequiredArgs("--mutationUnitSize", diff --git a/pitest-entry/src/main/java/org/pitest/mutationtest/config/ConfigOption.java b/pitest-entry/src/main/java/org/pitest/mutationtest/config/ConfigOption.java index 4e8240430..682762c90 100644 --- a/pitest-entry/src/main/java/org/pitest/mutationtest/config/ConfigOption.java +++ b/pitest-entry/src/main/java/org/pitest/mutationtest/config/ConfigOption.java @@ -153,10 +153,15 @@ public enum ConfigOption { */ INCLUDED_TEST_METHODS("includedTestMethods"), /** - * TestNG groupsJUnit categories to exclude + * TestNG groups / JUnit categories to exclude */ EXCLUDED_GROUPS("excludedGroups"), + /** + * JUnit4 runners to exclude + */ + EXCLUDED_RUNNERS("excludedRunners"), + /** * Whether to compute a full mutation matrix. */ From 6d1de17ed9e4aaeb11f14e7dd3d471f66ab34ad3 Mon Sep 17 00:00:00 2001 From: Henry Coles Date: Tue, 3 Jan 2023 11:18:04 +0000 Subject: [PATCH 2/2] add excluded runners parameter to Ant --- README.md | 4 ++++ pitest-ant/src/main/java/org/pitest/ant/PitestTask.java | 4 ++++ .../src/test/java/org/pitest/ant/PitestTaskTest.java | 7 +++++++ 3 files changed, 15 insertions(+) diff --git a/README.md b/README.md index 64107bbea..665a3ca2a 100644 --- a/README.md +++ b/README.md @@ -8,6 +8,10 @@ Read all about it at http://pitest.org ## Releases +## 1.10.4 (unreleased) + +* #1134 Add `excludedRunners` parameter to command line interface and Ant + ## 1.10.3 * #1128 Bug fix - lines with repeated debug entries double counted diff --git a/pitest-ant/src/main/java/org/pitest/ant/PitestTask.java b/pitest-ant/src/main/java/org/pitest/ant/PitestTask.java index ee767bfc2..619f99d86 100644 --- a/pitest-ant/src/main/java/org/pitest/ant/PitestTask.java +++ b/pitest-ant/src/main/java/org/pitest/ant/PitestTask.java @@ -212,6 +212,10 @@ public void setExcludedGroups(final String value) { this.setOption(ConfigOption.EXCLUDED_GROUPS, value); } + public void setExcludedRunners(final String value) { + this.setOption(ConfigOption.EXCLUDED_RUNNERS, value); + } + public void setIncludedTestMethods(final String value) { this.setOption(ConfigOption.INCLUDED_TEST_METHODS, value); } diff --git a/pitest-ant/src/test/java/org/pitest/ant/PitestTaskTest.java b/pitest-ant/src/test/java/org/pitest/ant/PitestTaskTest.java index 3073e3b9a..53d110b29 100644 --- a/pitest-ant/src/test/java/org/pitest/ant/PitestTaskTest.java +++ b/pitest-ant/src/test/java/org/pitest/ant/PitestTaskTest.java @@ -232,6 +232,13 @@ public void shouldPassExcludedGroupsOptionToJavaTask() { verify(this.arg).setValue("--excludedGroups=foo"); } + @Test + public void shouldPassExcludedRunnersToJavaTask() { + this.pitestTask.setExcludedRunners("foo"); + this.pitestTask.execute(this.java); + verify(this.arg).setValue("--excludedRunners=foo"); + } + @Test public void shouldPassIncludedTestMethodsOptionToJavaTask() { this.pitestTask.setIncludedTestMethods("footest");