This is an automated email from the ASF dual-hosted git repository. matthiasblaesing pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/netbeans.git
The following commit(s) were added to refs/heads/master by this push: new 15a98c1 failsafe:integration-test from contextual menu new 75b32e0 Merge pull request #3470 from abourree/feature/failsafe_integration-test 15a98c1 is described below commit 15a98c1a2ce88769536d5a511ba0df6bde501e37 Author: Arnaud BOURRÉE <arnaud.bour...@gmail.com> AuthorDate: Mon Jan 17 22:30:49 2022 +0100 failsafe:integration-test from contextual menu --- .../org/netbeans/modules/maven/TestChecker.java | 21 ++++++++++++++- .../maven/execute/DefaultReplaceTokenProvider.java | 31 ++++++++++++++++++++++ 2 files changed, 51 insertions(+), 1 deletion(-) diff --git a/java/maven/src/org/netbeans/modules/maven/TestChecker.java b/java/maven/src/org/netbeans/modules/maven/TestChecker.java index 7e971ea..af6282a 100644 --- a/java/maven/src/org/netbeans/modules/maven/TestChecker.java +++ b/java/maven/src/org/netbeans/modules/maven/TestChecker.java @@ -59,6 +59,17 @@ public class TestChecker implements PrerequisitesChecker { config.setProperty("test", test + '#' + method); } } + if (ActionProviderImpl.COMMAND_INTEGRATION_TEST_SINGLE.equals(action) || + ActionProviderImpl.COMMAND_DEBUG_INTEGRATION_TEST_SINGLE.equals(action) || + "profile-tests".equals(action)) //NOI18N - profile-tests is not really nice but well. + { + String test = config.getProperties().get("it.test"); //NOI18N + String method = config.getProperties().get(DefaultReplaceTokenProvider.METHOD_NAME); + if (test != null && method != null) { + config.setProperty(DefaultReplaceTokenProvider.METHOD_NAME, null); + config.setProperty("it.test", test + '#' + method); //NOI18N + } + } if (MavenSettings.getDefault().isSkipTests()) { if (!String.valueOf(config.getGoals()).contains("test")) { // incl. integration-test if (config.getProperties().get(PROP_SKIP_TEST) == null) { @@ -67,9 +78,17 @@ public class TestChecker implements PrerequisitesChecker { } } if (ActionProvider.COMMAND_TEST_SINGLE.equals(action) || + ActionProviderImpl.COMMAND_INTEGRATION_TEST_SINGLE.equals(action) || ActionProvider.COMMAND_DEBUG_TEST_SINGLE.equals(action) || + ActionProviderImpl.COMMAND_DEBUG_INTEGRATION_TEST_SINGLE.equals(action) || ActionProvider.COMMAND_PROFILE_TEST_SINGLE.equals(action)) { - String test = config.getProperties().get("test"); + String test; + if (ActionProviderImpl.COMMAND_INTEGRATION_TEST_SINGLE.equals(action) || + ActionProviderImpl.COMMAND_DEBUG_INTEGRATION_TEST_SINGLE.equals(action)) { + test = config.getProperties().get("it.test"); //NOI18N + } else { + test = config.getProperties().get("test"); //NOI18N + } if (test != null) { //#213783 when running tests validate that the test file exists FileObject origFile = config.getSelectedFileObject(); diff --git a/java/maven/src/org/netbeans/modules/maven/execute/DefaultReplaceTokenProvider.java b/java/maven/src/org/netbeans/modules/maven/execute/DefaultReplaceTokenProvider.java index 18591d8..32d272c 100644 --- a/java/maven/src/org/netbeans/modules/maven/execute/DefaultReplaceTokenProvider.java +++ b/java/maven/src/org/netbeans/modules/maven/execute/DefaultReplaceTokenProvider.java @@ -29,6 +29,7 @@ import java.util.HashSet; import java.util.List; import java.util.Map; import java.util.Set; +import javax.swing.ActionMap; import org.netbeans.api.annotations.common.CheckForNull; import org.netbeans.api.java.project.JavaProjectConstants; import org.netbeans.api.java.queries.UnitTestForSourceQuery; @@ -38,6 +39,7 @@ import org.netbeans.api.project.Project; import org.netbeans.api.project.ProjectUtils; import org.netbeans.api.project.SourceGroup; import org.netbeans.api.project.Sources; +import org.netbeans.modules.maven.ActionProviderImpl; import org.netbeans.modules.maven.NbMavenProjectImpl; import org.netbeans.modules.maven.api.NbMavenProject; import org.netbeans.modules.maven.classpath.MavenSourcesImpl; @@ -207,6 +209,7 @@ public class DefaultReplaceTokenProvider implements ReplaceTokenProvider, Action // not all of the selected files are under one source root, so maybe they were // selected from both source and test packages and "Test Files" action was invoked on them? if (ActionProvider.COMMAND_TEST_SINGLE.equals(actionName) || + ActionProviderImpl.COMMAND_INTEGRATION_TEST_SINGLE.equals(actionName) || ActionProvider.COMMAND_DEBUG_TEST_SINGLE.equals(actionName)) { HashSet<String> test = new HashSet<String>(); @@ -337,14 +340,42 @@ public class DefaultReplaceTokenProvider implements ReplaceTokenProvider, Action // return files.toArray( // new FileObject[files.size()]); // } + + private boolean isIntegrationTestFile(FileObject file) { + return file.getName().endsWith("IT") || file.getName().endsWith("ITCase"); //NOI18N + } + private boolean isIntegrationTestTarget(Lookup lookup) { + final SingleMethod targetMethod = lookup.lookup(SingleMethod.class); //JavaDataObject + if (targetMethod != null) { + return isIntegrationTestFile(targetMethod.getFile()); + } + final Collection<? extends FileObject> targetFiles = lookup.lookupAll(FileObject.class); + if (targetFiles != null) { + return targetFiles.stream().allMatch(file -> isIntegrationTestFile(file)); + } + return false; + } + @Override public String convert(String action, Lookup lookup) { if (SingleMethod.COMMAND_DEBUG_SINGLE_METHOD.equals(action)) { + if (isIntegrationTestTarget(lookup)) { + return ActionProviderImpl.COMMAND_DEBUG_INTEGRATION_TEST_SINGLE; + } return ActionProvider.COMMAND_DEBUG_TEST_SINGLE; } if (SingleMethod.COMMAND_RUN_SINGLE_METHOD.equals(action)) { + if (isIntegrationTestTarget(lookup)) { + return ActionProviderImpl.COMMAND_INTEGRATION_TEST_SINGLE; + } return ActionProvider.COMMAND_TEST_SINGLE; } + if (ActionProvider.COMMAND_TEST_SINGLE.equals(action) && isIntegrationTestTarget(lookup)) { + return ActionProviderImpl.COMMAND_INTEGRATION_TEST_SINGLE; + } + if (ActionProvider.COMMAND_DEBUG_TEST_SINGLE.equals(action) && isIntegrationTestTarget(lookup)) { + return ActionProviderImpl.COMMAND_DEBUG_INTEGRATION_TEST_SINGLE; + } if (ActionProvider.COMMAND_RUN_SINGLE.equals(action) || ActionProvider.COMMAND_DEBUG_SINGLE.equals(action) || ActionProvider.COMMAND_PROFILE_SINGLE.equals(action)) { --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@netbeans.apache.org For additional commands, e-mail: commits-h...@netbeans.apache.org For further information about the NetBeans mailing lists, visit: https://cwiki.apache.org/confluence/display/NETBEANS/Mailing+lists