public void addTest(XmlTest test) { getTests().add(test); }
private void init(XmlSuite suite, int index) { m_suite = suite; m_suite.getTests().add(this); m_index = index; //no two tests in the same suite should have the same name. //so, make the default test name unique m_name = TestNG.DEFAULT_COMMAND_LINE_TEST_NAME + " " + UUID.randomUUID().toString(); }
private void init(XmlSuite suite, int index) { m_suite = suite; m_suite.getTests().add(this); m_index = index; // no two tests in the same suite should have the same name. // so, make the default test name unique m_name = TestNG.DEFAULT_COMMAND_LINE_TEST_NAME + " " + UUID.randomUUID().toString(); }
@Override public Collection<XmlSuite> process(Collection<XmlSuite> suites) { for (XmlSuite s : suites) { if (m_groups != null && m_groups.length > 0) { for (XmlTest t : s.getTests()) { t.setIncludedGroups(Arrays.asList(m_groups)); } } if (m_excludedGroups != null && m_excludedGroups.length > 0) { for (XmlTest t : s.getTests()) { t.setExcludedGroups(Arrays.asList(m_excludedGroups)); } } } return suites; }
/** * @param cls - The class to look for. * @param suite - The {@link XmlSuite} whose <test> tags needs to be searched in. * @return - All the {@link XmlClass} objects that share the same <test> tag as the class. */ public static XmlClass[] findClassesInSameTest(Class<?> cls, XmlSuite suite) { Collection<XmlClass> vResult = Sets.newHashSet(); for (XmlTest test : suite.getTests()) { vResult.addAll(findClassesInSameTest(cls, test)); } return vResult.toArray(new XmlClass[vResult.size()]); }
/** * @return The parameters defined in this suite and all its XmlTests. */ public Map<String, String> getAllParameters() { Map<String, String> result = Maps.newHashMap(); for (Map.Entry<String, String> entry : m_parameters.entrySet()) { result.put(entry.getKey(), entry.getValue()); } for (XmlTest test : getTests()) { Map<String, String> tp = test.getLocalParameters(); for (Map.Entry<String, String> entry : tp.entrySet()) { result.put(entry.getKey(), entry.getValue()); } } return result; }
@Override public String getNavigatorLink(ISuite suite) { return pluralize(suite.getXmlSuite().getTests().size(), "test"); }
/** * @param cls - The class to look for. * @param suite - The {@link XmlSuite} whose <test> tags needs to be searched in. * @return - All the {@link XmlClass} objects that share the same <test> tag as the class. */ public static XmlClass[] findClassesInSameTest(Class<?> cls, XmlSuite suite) { Collection<XmlClass> vResult = Sets.newHashSet(); for (XmlTest test : suite.getTests()) { vResult.addAll(findClassesInSameTest(cls, test)); } return vResult.toArray(new XmlClass[0]); }
private XmlSuite cloneIfSuiteContainTestsWithNamesMatchingAny(XmlSuite suite) { List<XmlTest> tests = Lists.newLinkedList(); for (XmlTest xt : suite.getTests()) { if (xt.nameMatchesAny(testNames)) { tests.add(xt); matchedTestNames.add(xt.getName()); matchedTests.add(xt); } } if (tests.isEmpty()) { return null; } return cleanClone(suite, tests); }
private void initializeCommandLineSuites() { if (m_commandLineTestClasses != null || m_commandLineMethods != null) { if (null != m_commandLineMethods) { m_cmdlineSuites = createCommandLineSuitesForMethods(m_commandLineMethods); } else { m_cmdlineSuites = createCommandLineSuitesForClasses(m_commandLineTestClasses); } for (XmlSuite s : m_cmdlineSuites) { for (XmlTest t : s.getTests()) { t.setPreserveOrder(m_preserveOrder); } m_suites.add(s); if (m_groupByInstances != null) { s.setGroupByInstances(m_groupByInstances); } } } }
/** * Ensures that the current suite doesn't contain any duplicate {@link XmlTest} instances. * If duplicates are found, then a {@link TestNGException} is raised. * * @param xmlSuite - The {@link XmlSuite} to work with. */ static void ensureNoDuplicateTestsArePresent(XmlSuite xmlSuite) { Set<String> testNames = Sets.newHashSet(); for (XmlTest test : xmlSuite.getTests()) { if (!testNames.add(test.getName())) { throw new TestNGException("Two tests in the same suite [" + xmlSuite.getName() + "] " + "cannot have the same name: " + test.getName()); } } }
public static void addParams(XmlSuite suite, String suiteName, String testName, String sleepFor) { Map<String, String> parameters = new HashMap<>(); parameters.put("suiteName", suiteName); parameters.put("testName", testName); parameters.put("sleepFor", sleepFor); for (XmlTest test : suite.getTests()) { if (test.getName().equals(testName)) { test.setParameters(parameters); } } }
@Test public void testNameMatchesAny() { XmlSuite xmlSuite = createDummySuiteWithTestNamesAs("test1"); XmlTest xmlTest = xmlSuite.getTests().get(0); assertThat(xmlTest.nameMatchesAny(Collections.singletonList("test1"))).isTrue(); assertThat(xmlTest.nameMatchesAny(Collections.singletonList("test2"))).isFalse(); }
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()); } }
@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); }
@Override public void alter(List<XmlSuite> suites) { XmlSuite suite = suites.get(0); List<XmlTest> tests = suite.getTests(); XmlTest test = tests.get(0); XmlTest anotherTest = new XmlTest(suite); anotherTest.setName("foo"); anotherTest.setClasses(test.getClasses()); } }
@Test public void testDescriptionInclusion() throws Exception { final String xml = getPathToResource("xml/simple-suite-with-method-desc.xml"); SuiteXmlParser parser = new SuiteXmlParser(); TestNGContentHandler handler = new TestNGContentHandler(xml, false); parser.parse(new FileInputStream(xml), handler); List<XmlInclude> includes = handler.getSuite().getTests().get(0).getXmlClasses().get(0).getIncludedMethods(); String desc = includes.get(0).getDescription(); Assert.assertEquals("simple-description", desc); }
@Override public String getContent(ISuite suite, XMLStringBuffer main) { XMLStringBuffer xsb = new XMLStringBuffer(main.getCurrentIndent()); xsb.push("ul"); for (XmlTest test : suite.getXmlSuite().getTests()) { xsb.push("li"); int count = test.getXmlClasses().size(); String name = test.getName() + " (" + pluralize(count, "class") + ")"; xsb.addRequired(S, name, C, "test-name"); xsb.pop("li"); } xsb.pop("ul"); return xsb.toXML(); }
/** * {@inheritDoc} * Note that this is not a full clone: XmlTest children are not cloned by this * method. */ @Override public Object clone() { XmlSuite result = shallowCopy(); result.setExcludedGroups(getExcludedGroups()); result.setIncludedGroups(getIncludedGroups()); result.setGroupByInstances(getGroupByInstances()); result.setGroups(getGroups()); result.setMethodSelectors(getXmlMethodSelectors()); result.setPackages(getPackages()); result.setParentSuite(getParentSuite()); result.setPreserveOrder(getPreserveOrder()); result.setSuiteFiles(getSuiteFiles()); result.setTests(getTests()); result.setXmlMethodSelectors(getXmlMethodSelectors()); return result; }