/** * This method returns a shallow cloned version. {@link XmlTest} are not copied by this method. * @return - A Shallow copied version of {@link XmlSuite}. */ public XmlSuite shallowCopy() { XmlSuite result = new XmlSuite(); result.setName(getName()); result.setFileName(getFileName()); result.setListeners(getListeners()); result.setParallel(getParallel()); result.setParentModule(getParentModule()); result.setGuiceStage(getGuiceStage()); result.setConfigFailurePolicy(getConfigFailurePolicy()); result.setThreadCount(getThreadCount()); result.setDataProviderThreadCount(getDataProviderThreadCount()); result.setParameters(getParameters()); result.setVerbose(getVerbose()); result.setXmlPackages(getXmlPackages()); // result.setBeanShellExpression(getExpression()); result.setMethodSelectors(getMethodSelectors()); result.setJUnit(isJUnit()); // TESTNG-141 result.setSkipFailedInvocationCounts(skipFailedInvocationCounts()); result.setObjectFactory(getObjectFactory()); result.setAllowReturnValues(getAllowReturnValues()); result.setTimeOut(getTimeOut()); return result; }
maybeAdd(result, "name", suite.getName(), null); maybeAdd(result, "junit", suite.isJUnit(), XmlSuite.DEFAULT_JUNIT); maybeAdd(result, "verbose", suite.getVerbose(), XmlSuite.DEFAULT_VERBOSE); maybeAdd(result, "threadCount", suite.getThreadCount(), XmlSuite.DEFAULT_THREAD_COUNT); maybeAdd(result, "dataProviderThreadCount", suite.getDataProviderThreadCount(), XmlSuite.DEFAULT_DATA_PROVIDER_THREAD_COUNT); maybeAdd(result, "timeOut", suite.getTimeOut(), null); maybeAdd(result, "parallel", suite.getParallel(), XmlSuite.DEFAULT_PARALLEL); maybeAdd(result, "configFailurePolicy", suite.getConfigFailurePolicy().toString(), XmlSuite.DEFAULT_CONFIG_FAILURE_POLICY); maybeAdd(result, "skipFailedInvocationCounts", suite.skipFailedInvocationCounts(), XmlSuite.DEFAULT_SKIP_FAILED_INVOCATION_COUNTS); toYaml(result, "parameters", "", suite.getParameters()); toYaml(result, suite.getPackages()); if (!suite.getListeners().isEmpty()) { result.append("listeners:\n"); toYaml(result, " ", suite.getListeners()); if (!suite.getPackages().isEmpty()) { result.append("packages:\n"); toYaml(result, suite.getPackages()); if (!suite.getTests().isEmpty()) { result.append("tests:\n"); for (XmlTest t : suite.getTests()) { toYaml(result, " ", t); if (!suite.getChildSuites().isEmpty()) {
protected void generateFailureSuite(XmlSuite xmlSuite, ISuite suite, String outputDir) { XmlSuite failedSuite = xmlSuite.shallowCopy(); failedSuite.setName("Failed suite [" + xmlSuite.getName() + "]"); m_xmlSuite= failedSuite; Map<String, ISuiteResult> results = suite.getResults(); for(Map.Entry<String, ISuiteResult> entry : results.entrySet()) { ISuiteResult suiteResult = entry.getValue(); ITestContext testContext = suiteResult.getTestContext(); generateXmlTest(testContext.getCurrentXmlTest(), testContext, testContext.getFailedTests().getAllResults(), testContext.getSkippedTests().getAllResults()); } if(null != failedSuite.getTests() && failedSuite.getTests().size() > 0) { Utils.writeUtf8File(outputDir, TESTNG_FAILED_XML, failedSuite.toXml()); Utils.writeUtf8File(suite.getOutputDirectory(), TESTNG_FAILED_XML, failedSuite.toXml()); } }
private void initializeCommandLineSuitesParams() { if(null == m_cmdlineSuites) { return; } for (XmlSuite s : m_cmdlineSuites) { if (m_threadCount != -1) { s.setThreadCount(m_threadCount); } if (m_parallelMode != null) { s.setParallel(m_parallelMode); } if(m_configFailurePolicy != null) { s.setConfigFailurePolicy(m_configFailurePolicy); } } }
public static XmlSuite newXmlSuiteUsing(List<String> classes) { XmlSuite xmlSuite = new XmlSuite(); xmlSuite.setVerbose(0); xmlSuite.setName("Jar suite"); XmlTest xmlTest = new XmlTest(xmlSuite); xmlTest.setXmlClasses(constructXmlClassesUsing(classes)); return xmlSuite; }
@Test(dataProvider = "dp1") public void testThreadAffinity(Class<?>... classes) { XmlSuite xmlsuite = createXmlSuite("test_suite"); xmlsuite.setParallel(XmlSuite.ParallelMode.CLASSES); xmlsuite.setThreadCount(6); createXmlTest(xmlsuite, "Test 1", classes); TestNG testng = create(xmlsuite); testng.setVerbose(2); LogGatheringListener listener = new LogGatheringListener(); testng.addListener(listener); testng.run(); assertThat(listener.log).hasSize(2); }
/** * Checks that suites created programmatically also run as expected */ @Test public void checkTestNamesForProgrammaticSuites() { XmlSuite xmlSuite = new XmlSuite(); xmlSuite.setName("SanityCheckSuite"); XmlTest result = new XmlTest(xmlSuite); result.getXmlClasses().add(new XmlClass(SampleTest1.class.getCanonicalName())); result = new XmlTest(xmlSuite); result.getXmlClasses().add(new XmlClass(SampleTest2.class.getCanonicalName())); TestNG tng = new TestNG(); tng.setVerbose(0); tng.setXmlSuites(Collections.singletonList(xmlSuite)); tng.run(); } }
CommandLineOptions options = new CommandLineOptions(); JCommander jCommander = new JCommander(options, args); XmlSuite suite = new XmlSuite(); suite.setName("MyTestSuite"); suite.setParameters(options.convertToMap()); List<XmlClass> classes = new ArrayList<XmlClass>(); classes.add(new XmlClass("com.some.path.tests.MyTests")); XmlTest test = new XmlTest(suite); test.setName("MyTests"); test.setXmlClasses(classes); List<XmlSuite> suites = new ArrayList<XmlSuite>(); suites.add(suite); TestNG testNG = new TestNG(); testNG.setXmlSuites(suites); testNG.run();
m_currentSuite = new XmlSuite(); m_currentSuite.setFileName(m_fileName); m_currentSuite.setName(name); m_currentSuiteParameters = Maps.newHashMap(); m_currentSuite.setVerbose(Integer.parseInt(verbose)); m_currentSuite.setJUnit(Boolean.valueOf(jUnit)); XmlSuite.ParallelMode mode = XmlSuite.ParallelMode.getValidParallel(parallel); if (mode != null) { m_currentSuite.setParallel(mode); } else { Utils.log("Parser", 1, "[WARN] Unknown value of attribute 'parallel' at suite level: '" + parallel + "'."); m_currentSuite.setParentModule(parentModule); m_currentSuite.setGuiceStage(guiceStage); m_currentSuite.setConfigFailurePolicy(configFailurePolicy); m_currentSuite.setGroupByInstances(Boolean.valueOf(groupByInstances)); m_currentSuite.setSkipFailedInvocationCounts(Boolean.valueOf(skip)); m_currentSuite.setThreadCount(Integer.parseInt(threadCount)); m_currentSuite.setDataProviderThreadCount(Integer.parseInt(dataProviderThreadCount));
@Test public void programmaticXmlSuite() { TestNG tng = create(); XmlSuite suite = new XmlSuite(); XmlMethodSelector methodSelector = new XmlMethodSelector(); methodSelector.setName("test.methodselectors.Test2MethodSelector"); methodSelector.setPriority(-1); List<XmlMethodSelector> methodSelectors = Lists.newArrayList(); methodSelectors.add(methodSelector); suite.setMethodSelectors(methodSelectors); XmlTest test = new XmlTest(suite); XmlClass testClass = new XmlClass(test.methodselectors.SampleTest.class); test.setXmlClasses(Collections.singletonList(testClass)); tng.setXmlSuites(Collections.singletonList(suite)); tng.addListener((ITestNGListener) m_tla); tng.run(); validate(new String[] { "test2" }); }
@Test public void verifyBeforeTestOrdering() throws IOException { XmlSuite s = new XmlSuite(); Reporter.log("BEFORE"); XmlTest t1 = new XmlTest(s); XmlClass c1 = new XmlClass(BeforeTestOrdering1Test.class); t1.getXmlClasses().add(c1); XmlTest t2 = new XmlTest(s); XmlClass c2 = new XmlClass(BeforeTestOrdering2Test.class); t2.getXmlClasses().add(c2); TestNG tng = TestHelper.createTestNG(); TestListenerAdapter tl = new TestListenerAdapter(); tng.addListener(tl); tng.setXmlSuites(Collections.singletonList(s)); tng.run(); Assert.assertEquals(m_testNames, expected); } }
@Test public void failedFile() throws ParserConfigurationException, SAXException, IOException { XmlSuite xmlSuite = createXmlSuite("Suite"); xmlSuite.getParameters().put("n", "42"); XmlTest xmlTest = createXmlTest(xmlSuite, "Test"); xmlTest.addParameter("o", "43"); XmlClass xmlClass = createXmlClass(xmlTest, SimpleFailedSample.class); xmlClass.getLocalParameters().put("p", "44"); TestNG tng = create(xmlSuite); Path temp = Files.createTempDirectory("tmp"); tng.setOutputDirectory(temp.toAbsolutePath().toString()); tng.addListener((ITestNGListener) new FailedReporter()); tng.run(); Collection<XmlSuite> failedSuites = new Parser(temp.resolve(FailedReporter.TESTNG_FAILED_XML).toAbsolutePath().toString()).parse(); XmlSuite failedSuite = failedSuites.iterator().next(); Assert.assertEquals("42", failedSuite.getParameter("n")); XmlTest failedTest = failedSuite.getTests().get(0); Assert.assertEquals("43", failedTest.getParameter("o")); XmlClass failedClass = failedTest.getClasses().get(0); Assert.assertEquals("44", failedClass.getAllParameters().get("p")); } }
private static void test(XmlSuite s) { Assert.assertEquals("TestNG", s.getName()); Assert.assertEquals(s.getDataProviderThreadCount(), 3); Assert.assertEquals(s.getThreadCount(), 2); List<XmlMethodSelector> selectors = s.getMethodSelectors(); Assert.assertEquals(selectors.size(), 2); XmlMethodSelector s1 = selectors.get(0); List<String> suiteFiles = s.getSuiteFiles(); Assert.assertEquals(suiteFiles, Arrays.asList("./junit-suite.xml")); Map<String, String> p = s.getParameters(); Assert.assertEquals(p.size(), 2); Assert.assertEquals(p.get("suiteParameter"), "suiteParameterValue"); Assert.assertEquals(s.getIncludedGroups(), Arrays.asList("includeThisGroup")); Assert.assertEquals(s.getExcludedGroups(), Arrays.asList("excludeThisGroup")); XmlGroups groups = s.getGroups(); Assert.assertEquals(s.getPackageNames(), Arrays.asList("com.example1", "com.example2")); Assert.assertEquals(s.getListeners(), Arrays.asList("com.beust.Listener1", "com.beust.Listener2")); Assert.assertEquals(s.getTests().size(), 3); for (int i = 0; i < s.getTests().size(); i++) { if ("Nopackage".equals(s.getTests().get(i).getName())) { testNoPackage(s.getTests().get(i));
suiteOne.setParallel(XmlSuite.ParallelMode.NONE); suiteOne.setThreadCount(1); testA.setParallel(XmlSuite.ParallelMode.METHODS); testA.setThreadCount(THREAD_POOL_SIZE); tng.setSuiteThreadPoolSize(THREAD_POOL_SIZE); tng.addListener((ITestNGListener) new TestNgRunStateListener()); HighPriorityTestSample.class.getCanonicalName() + ", " + LowPriorityTestSample.class.getCanonicalName() + ". Thread count: 2"); tng.run();
public FakeTestContext(Class<?>... classes) { XmlSuite xmlSuite = new XmlSuite(); xmlSuite.setName("xml_suite"); xmlTest = new XmlTest(xmlSuite); for (Class<?> clazz : classes) { xmlTest.getXmlClasses().add(new XmlClass(clazz)); } Map<String, String> map = Maps.newHashMap(); map.put("foo", "bar"); xmlTest.setParameters(map); suite = new FakeSuite(xmlTest); }
private static XmlSuite createSuite() { XmlSuite suite = new XmlSuite(); XmlTest test = new XmlTest(suite); test.setName("command_line_test"); XmlClass xClass = new XmlClass(XmlVerifyTest.class); test.getXmlClasses().add(xClass); test.addExcludedGroup("fast"); test.setVerbose(5); return suite; }
@Test(description = "GITHUB-435") public void ensureSuiteLevelPackageIsAppliedToAllTests() throws IOException { Parser parser = new Parser("src/test/resources/xml/issue435.xml"); List<XmlSuite> suites = parser.parseToList(); XmlSuite xmlsuite = suites.get(0); assertThat(xmlsuite.getTests().get(0).getClasses().size()).isEqualTo(0); TestNG testNG = create(); testNG.setXmlSuites(suites); testNG.setUseDefaultListeners(false); testNG.run(); assertThat(xmlsuite.getTests().get(0).getClasses().size()).isEqualTo(1); }
private void runTests(ITestNGListener interceptor, String... names) { List<String> expected = Arrays.asList(names); XmlSuite xmlsuite = createXmlSuite("suite", "test", TestSample.class); xmlsuite.getTests().get(0).setIncludedGroups(Collections.singletonList("exTests")); TestNG testng = create(xmlsuite); InvokedMethodNameListener listener = new InvokedMethodNameListener(); testng.addListener(listener); if (interceptor != null) { testng.addListener(interceptor); } testng.run(); for (String each : listener.getInvokedMethodNames()) { assertTrue( expected.contains(each), each + " not found in expected invocation methods " + expected); } } }