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"); }
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(); }
public String toXml(String indent) { XMLStringBuffer xsb = new XMLStringBuffer(indent); String indent2 = indent + " "; boolean hasGroups = hasElements(m_defines) || m_run != null || hasElements(m_dependencies); if (hasGroups) { xsb.push("groups"); } for (XmlDefine d : m_defines) { xsb.getStringBuffer().append(d.toXml(indent2)); } if (null != m_run) { // XmlRun is optional and is not always available. So check if its available before running // toXml() xsb.getStringBuffer().append(m_run.toXml(indent2)); } for (XmlDependencies d : m_dependencies) { xsb.getStringBuffer().append(d.toXml(indent2)); } if (hasGroups) { xsb.pop("groups"); } return xsb.toXML(); }
/** * 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"); }
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"); }
protected void initContentBuffer(XMLStringBuffer suiteBuffer) { Properties testAttrs = new Properties(); testAttrs.setProperty("name", getTestName()); // if(m_annotationType != null) { // testAttrs.setProperty("annotations", m_annotationType); // } testAttrs.setProperty("verbose", String.valueOf(m_logLevel)); suiteBuffer.push("test", testAttrs); groupsElement(suiteBuffer); packagesElement(suiteBuffer); classesElement(suiteBuffer); suiteBuffer.pop("test"); }
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(); }
protected XMLStringBuffer createContentBuffer() { PreferenceStoreUtil storage = new PreferenceStoreUtil(TestNGPlugin.getDefault().getPreferenceStore()); String xmlFile = storage.getXmlTemplateFile(m_projectName, false /* not only project */); boolean hasEclipseXmlFile = !Utils.isStringEmpty(xmlFile); XMLStringBuffer suiteBuffer = new XMLStringBuffer(); // $NON-NLS-1$ suiteBuffer.setDocType("suite SYSTEM \"" + Parser.TESTNG_DTD_URL + "\""); if (hasEclipseXmlFile) { createXmlFileFromTemplate(suiteBuffer, xmlFile); } else { createXmlFileFromParameters(suiteBuffer); } // Done with the top of the XML file, now generate the <test> elements initContentBuffer(suiteBuffer); suiteBuffer.pop("suite"); return suiteBuffer; }
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(); }