public String toXml(String indent) { XMLStringBuffer xsb = new XMLStringBuffer(indent); Properties prop = new Properties(); prop.setProperty("name", getName()); boolean hasMethods = !m_includedMethods.isEmpty() || !m_excludedMethods.isEmpty(); boolean hasParameters = !m_parameters.isEmpty(); if (hasParameters || hasMethods) { xsb.push("class", prop); XmlUtils.dumpParameters(xsb, m_parameters); if (hasMethods) { xsb.push("methods"); for (XmlInclude m : getIncludedMethods()) { xsb.getStringBuffer().append(m.toXml(indent + " ")); } for (String m : getExcludedMethods()) { Properties p = new Properties(); p.setProperty("name", m); xsb.addEmptyElement("exclude", p); } xsb.pop("methods"); } xsb.pop("class"); } else { xsb.addEmptyElement("class", prop); } return xsb.toXML(); }
protected void generateClassesWithMethodsElement(XMLStringBuffer suiteBuffer) { suiteBuffer.push("classes"); for (Map.Entry<String, List<String>> entry : m_classMethods.entrySet()) { String className = entry.getKey(); Properties classAttrs = new Properties(); classAttrs.setProperty("name", className); List<String> methodNames = entry.getValue(); if (null == methodNames) { suiteBuffer.addEmptyElement("class", classAttrs); } else { suiteBuffer.push("class", classAttrs); suiteBuffer.push("methods"); for (String name : methodNames) { Properties methodAttrs = new Properties(); methodAttrs.setProperty("name", name); suiteBuffer.addEmptyElement("include", methodAttrs); } suiteBuffer.pop("methods"); suiteBuffer.pop("class"); } } suiteBuffer.pop("classes"); }
private void createXmlFileFromParameters(XMLStringBuffer suiteBuffer) { Properties attrs = new Properties(); attrs.setProperty("name", getSuiteName()); // attrs.setProperty("parallel", TestNGPlugin.getPluginPreferenceStore() // .getParallel(m_projectName, false /* not project only */)); suiteBuffer.push("suite", attrs); if (m_parameters != null) { for (Map.Entry<String, String> entry : m_parameters.entrySet()) { Properties paramAttrs = new Properties(); paramAttrs.setProperty("name", entry.getKey()); paramAttrs.setProperty("value", entry.getValue()); suiteBuffer.addEmptyElement("parameter", paramAttrs); } } // if (m_suiteFiles.size() > 0) { // suiteBuffer.push("suite-files"); // for (String suite : m_suiteFiles) { // Properties s = new Properties(); // s.put("path", suite); // suiteBuffer.addEmptyElement("suite-file", s); // } // suiteBuffer.pop("suite-files"); // } }
protected void generateDefaultClassesElement( XMLStringBuffer suiteBuffer, List<String> classNames) { if ((null == classNames) || classNames.isEmpty()) { return; } suiteBuffer.push("classes"); for (String className : classNames) { Properties classAttrs = new Properties(); classAttrs.setProperty("name", className); suiteBuffer.addEmptyElement("class", classAttrs); } suiteBuffer.pop("classes"); }
protected void generateDefaultPackagesElement( XMLStringBuffer suiteBuffer, List<String> packageNames) { if ((null == packageNames) || packageNames.isEmpty()) { return; } suiteBuffer.push("packages"); for (String packageName : packageNames) { Properties packageAttrs = new Properties(); packageAttrs.setProperty("name", packageName); suiteBuffer.addEmptyElement("package", packageAttrs); } suiteBuffer.pop("packages"); }
/** * An utility method that generates the groups element using the passed in collection of names * (order of group names ia not important). */ protected void generateDefaultGroupsElement( XMLStringBuffer suiteBuffer, Collection<String> groupNames) { if ((null == groupNames) || groupNames.isEmpty()) { return; } suiteBuffer.push("groups"); suiteBuffer.push("run"); for (String groupName : groupNames) { Properties includeAttrs = new Properties(); includeAttrs.setProperty("name", groupName); suiteBuffer.addEmptyElement("include", includeAttrs); } suiteBuffer.pop("run"); suiteBuffer.pop("groups"); }
public String toXml(String indent) { XMLStringBuffer xsb = new XMLStringBuffer(indent); Properties p = new Properties(); p.setProperty("name", getName()); List<Integer> invocationNumbers = getInvocationNumbers(); if (invocationNumbers != null && invocationNumbers.size() > 0) { p.setProperty("invocation-numbers", XmlClass.listToString(invocationNumbers).toString()); } if (!m_parameters.isEmpty()) { xsb.push("include", p); XmlUtils.dumpParameters(xsb, m_parameters); xsb.pop("include"); } else { xsb.addEmptyElement("include", p); } return xsb.toXML(); }
public String toXml(String indent) { XMLStringBuffer xsb = new XMLStringBuffer(indent); Properties p = new Properties(); p.setProperty("name", getName()); p.setProperty("junit", m_isJUnit != null ? m_isJUnit.toString() : "false"); if (null != m_parallel && !"".equals(m_parallel)) { p.setProperty("parallel", m_parallel); } if (null != m_verbose) { p.setProperty("verbose", m_verbose.toString()); } if (null != m_annotations) { p.setProperty("annotations", m_annotations.toString()); } if (null != m_timeOut) { p.setProperty("time-out", m_timeOut.toString()); } xsb.push("test", p); if (null != getMethodSelectors() && !getMethodSelectors().isEmpty()) { xsb.push("method-selectors"); for (XmlMethodSelector selector : getMethodSelectors()) { xsb.getStringBuffer().append(selector.toXml(indent + " ")); } xsb.pop("method-selectors"); } // parameters if (!m_parameters.isEmpty()) { for (Map.Entry<String, String> para : m_parameters.entrySet()) { Properties paramProps = new Properties(); paramProps.setProperty("name", para.getKey()); paramProps.setProperty("value", para.getValue()); xsb.addEmptyElement("parameter", paramProps); // BUGFIX: TESTNG-27 } } // groups if (!m_metaGroups.isEmpty() || !m_includedGroups.isEmpty() || !m_excludedGroups.isEmpty()) { xsb.push("groups"); // define for (String metaGroupName : m_metaGroups.keySet()) { Properties metaGroupProp = new Properties(); metaGroupProp.setProperty("name", metaGroupName); xsb.push("define", metaGroupProp); for (String groupName : m_metaGroups.get(metaGroupName)) { Properties includeProps = new Properties(); includeProps.setProperty("name", groupName); xsb.addEmptyElement("include", includeProps); } xsb.pop("define"); } if (!m_includedGroups.isEmpty() || !m_excludedGroups.isEmpty()) { xsb.push("run"); for (String includeGroupName : m_includedGroups) { Properties includeProps = new Properties(); includeProps.setProperty("name", includeGroupName); xsb.addEmptyElement("include", includeProps); } for (String excludeGroupName : m_excludedGroups) { Properties excludeProps = new Properties(); excludeProps.setProperty("name", excludeGroupName); xsb.addEmptyElement("exclude", excludeProps); } xsb.pop("run"); } xsb.pop("groups"); } // HINT: don't call getXmlPackages() cause you will retrieve the suite packages too if (null != m_xmlPackages && !m_xmlPackages.isEmpty()) { xsb.push("packages"); for (XmlPackage pack : m_xmlPackages) { xsb.getStringBuffer().append(pack.toXml(" ")); } xsb.pop("packages"); } // classes if (null != getXmlClasses() && !getXmlClasses().isEmpty()) { xsb.push("classes"); for (XmlClass cls : getXmlClasses()) { xsb.getStringBuffer().append(cls.toXml(indent + " ")); } xsb.pop("classes"); } xsb.pop("test"); return xsb.toXML(); }
/** Fill the top of the XML suiteBuffer with the top of the XML template file */ private void createXmlFileFromTemplate(XMLStringBuffer suiteBuffer, String fileName) { try { Parser parser = new Parser(fileName); parser.setLoadClasses(false); // we don't want to load the classes from the template file Collection<XmlSuite> suites = parser.parse(); if (suites.size() > 0) { XmlSuite s = suites.iterator().next(); // Retrieve the <suite> attributes from the template file and transfer // them in the suite we are creating. Properties attr = new Properties(); put(attr, "name", s.getName()); put(attr, "junit", s.isJUnit()); put(attr, "verbose", s.getVerbose()); put(attr, "parallel", s.getParallel()); put(attr, "thread-count", s.getThreadCount()); // put(attr, "annotations", s.getAnnotations()); put(attr, "time-out", s.getTimeOut()); put(attr, "skipfailedinvocationcounts", s.skipFailedInvocationCounts()); put(attr, "configfailurepolicy", s.getConfigFailurePolicy()); put(attr, "data-provider-thread-count", s.getDataProviderThreadCount()); put(attr, "object-factory", s.getObjectFactory()); put(attr, "allow-return-values", s.getAllowReturnValues()); put(attr, "preserve-order", s.getPreserveOrder()); put(attr, "group-by-instances", s.getGroupByInstances()); suiteBuffer.push("suite", attr); // Children of <suite> // Listeners if (s.getListeners().size() > 0) { suiteBuffer.push("listeners"); for (String l : s.getListeners()) { Properties p = new Properties(); p.put("class-name", l); suiteBuffer.addEmptyElement("listener", p); } suiteBuffer.pop("listeners"); } // Parameters for (Map.Entry<String, String> parameter : s.getParameters().entrySet()) { Properties p = new Properties(); p.put("name", parameter.getKey()); p.put("value", parameter.getValue()); suiteBuffer.addEmptyElement("parameter", p); } // Method selectors if (s.getMethodSelectors().size() > 0) { suiteBuffer.push("method-selectors"); for (XmlMethodSelector ms : s.getMethodSelectors()) { String cls = ms.getClassName(); if (cls != null && cls.length() > 0) { suiteBuffer.push("method-selector"); Properties p = new Properties(); p.put("name", cls); p.put("priority", ms.getPriority()); suiteBuffer.addEmptyElement("selector-class", p); suiteBuffer.pop("method-selector"); } // TODO: <script> tag of method-selector } suiteBuffer.pop("method-selectors"); } } } catch (IOException e) { throw new TestNGException(e); } }
public String toXml(String indent) { XMLStringBuffer xsb = new XMLStringBuffer(indent); Properties p = new Properties(); p.setProperty("name", getName()); if (m_isJUnit != null) { XmlUtils.setProperty(p, "junit", m_isJUnit.toString(), XmlSuite.DEFAULT_JUNIT.toString()); } if (m_parallel != null) { XmlUtils.setProperty(p, "parallel", m_parallel, XmlSuite.DEFAULT_PARALLEL); } if (m_verbose != null) { XmlUtils.setProperty(p, "verbose", m_verbose.toString(), XmlSuite.DEFAULT_VERBOSE.toString()); } if (null != m_timeOut) { p.setProperty("time-out", m_timeOut.toString()); } if (m_preserveOrder != null) { p.setProperty("preserve-order", m_preserveOrder.toString()); } if (m_threadCount != -1) { p.setProperty("thread-count", Integer.toString(m_threadCount)); } xsb.push("test", p); if (null != getMethodSelectors() && !getMethodSelectors().isEmpty()) { xsb.push("method-selectors"); for (XmlMethodSelector selector : getMethodSelectors()) { xsb.getStringBuffer().append(selector.toXml(indent + " ")); } xsb.pop("method-selectors"); } // parameters if (!m_parameters.isEmpty()) { for (Map.Entry<String, String> para : m_parameters.entrySet()) { Properties paramProps = new Properties(); paramProps.setProperty("name", para.getKey()); paramProps.setProperty("value", para.getValue()); xsb.addEmptyElement("parameter", paramProps); // BUGFIX: TESTNG-27 } } // groups if (!m_metaGroups.isEmpty() || !m_includedGroups.isEmpty() || !m_excludedGroups.isEmpty()) { xsb.push("groups"); // define for (String metaGroupName : m_metaGroups.keySet()) { Properties metaGroupProp = new Properties(); metaGroupProp.setProperty("name", metaGroupName); xsb.push("define", metaGroupProp); for (String groupName : m_metaGroups.get(metaGroupName)) { Properties includeProps = new Properties(); includeProps.setProperty("name", groupName); xsb.addEmptyElement("include", includeProps); } xsb.pop("define"); } if (!m_includedGroups.isEmpty() || !m_excludedGroups.isEmpty()) { xsb.push("run"); for (String includeGroupName : m_includedGroups) { Properties includeProps = new Properties(); includeProps.setProperty("name", includeGroupName); xsb.addEmptyElement("include", includeProps); } for (String excludeGroupName : m_excludedGroups) { Properties excludeProps = new Properties(); excludeProps.setProperty("name", excludeGroupName); xsb.addEmptyElement("exclude", excludeProps); } xsb.pop("run"); } xsb.pop("groups"); } if (null != m_xmlPackages && !m_xmlPackages.isEmpty()) { xsb.push("packages"); for (XmlPackage pack : m_xmlPackages) { xsb.getStringBuffer().append(pack.toXml(" ")); } xsb.pop("packages"); } // classes if (null != getXmlClasses() && !getXmlClasses().isEmpty()) { xsb.push("classes"); for (XmlClass cls : getXmlClasses()) { xsb.getStringBuffer().append(cls.toXml(indent + " ")); } xsb.pop("classes"); } xsb.pop("test"); return xsb.toXML(); }