diff --git a/testng-core/src/main/java/org/testng/JarFileUtils.java b/testng-core/src/main/java/org/testng/JarFileUtils.java index c0bb86f5b0..49f34d8996 100644 --- a/testng-core/src/main/java/org/testng/JarFileUtils.java +++ b/testng-core/src/main/java/org/testng/JarFileUtils.java @@ -95,7 +95,8 @@ private boolean testngXmlExistsInJar(File jarFile, List classes) throws TestNamesMatcher testNamesMatcher = new TestNamesMatcher(suite, testNames); List missMatchedTestname = testNamesMatcher.getMissMatchedTestNames(); if (!missMatchedTestname.isEmpty()) { - throw new TestNGException("The test(s) <" + missMatchedTestname + "> cannot be found."); + throw new TestNGException( + "The test(s) <" + missMatchedTestname + "> cannot be found in suite: " + suite.getName()); } suites.addAll(testNamesMatcher.getSuitesMatchingTestNames()); } else { diff --git a/testng-core/src/main/java/org/testng/TestNG.java b/testng-core/src/main/java/org/testng/TestNG.java index 3cbebe07fd..681d0ae237 100644 --- a/testng-core/src/main/java/org/testng/TestNG.java +++ b/testng-core/src/main/java/org/testng/TestNG.java @@ -353,7 +353,8 @@ private Collection processCommandLineArgs(Collection allSuit TestNamesMatcher testNamesMatcher = new TestNamesMatcher(s, m_testNames); List missMatchedTestname = testNamesMatcher.getMissMatchedTestNames(); if (!missMatchedTestname.isEmpty()) { - throw new TestNGException("The test(s) <" + missMatchedTestname + "> cannot be found."); + throw new TestNGException( + "The test(s) <" + missMatchedTestname + "> cannot be found, in suite: " + s.getName()); } result.addAll(testNamesMatcher.getSuitesMatchingTestNames()); } @@ -420,7 +421,8 @@ public void initializeSuitesAndJarFile() { new JarFileUtils(getProcessor(), m_xmlPathInJar, m_testNames, m_parallelMode); Collection allSuites = utils.extractSuitesFrom(jarFile); - m_suites.addAll(processCommandLineArgs(allSuites)); + allSuites.stream().forEach(s -> processParallelModeCommandLineArgs(s)); + m_suites.addAll(allSuites); } /** @param threadCount Define the number of threads in the thread pool. */ diff --git a/testng-core/src/test/java/org/testng/JarFileUtilsTest.java b/testng-core/src/test/java/org/testng/JarFileUtilsTest.java index a2fcb562aa..246a1d779e 100644 --- a/testng-core/src/test/java/org/testng/JarFileUtilsTest.java +++ b/testng-core/src/test/java/org/testng/JarFileUtilsTest.java @@ -55,7 +55,7 @@ public void testWithNoTestNames() throws MalformedURLException { @Test( expectedExceptions = TestNGException.class, expectedExceptionsMessageRegExp = - "\nThe test\\(s\\) <\\[testng-tests-child11\\]> cannot be found.") + "\nThe test\\(s\\) <\\[testng-tests-child11\\]> cannot be found in suite: testng-tests-suite") public void testWithInvalidTestNames() throws MalformedURLException { JarFileUtils utils = newJarFileUtils(Collections.singletonList("testng-tests-child11")); runTest(