Added the new <group> tag to XmlTest#toXml().
diff --git a/src/main/java/org/testng/xml/XmlTest.java b/src/main/java/org/testng/xml/XmlTest.java
index 09f5314..0ddcfea 100755
--- a/src/main/java/org/testng/xml/XmlTest.java
+++ b/src/main/java/org/testng/xml/XmlTest.java
@@ -1,6 +1,7 @@
package org.testng.xml;
import org.testng.TestNG;
+import org.testng.TestNGException;
import org.testng.collections.Lists;
import org.testng.collections.Maps;
import org.testng.reporters.XMLStringBuffer;
@@ -472,7 +473,8 @@
}
// groups
- if (!m_metaGroups.isEmpty() || !m_includedGroups.isEmpty() || !m_excludedGroups.isEmpty()) {
+ if (!m_metaGroups.isEmpty() || !m_includedGroups.isEmpty() || !m_excludedGroups.isEmpty()
+ || !m_xmlDependencyGroups.isEmpty()) {
xsb.push("groups");
// define
@@ -492,6 +494,7 @@
xsb.pop("define");
}
+ // run
if (!m_includedGroups.isEmpty() || !m_excludedGroups.isEmpty()) {
xsb.push("run");
@@ -512,6 +515,15 @@
xsb.pop("run");
}
+ // group dependencies
+ if (m_xmlDependencyGroups != null && ! m_xmlDependencyGroups.isEmpty()) {
+ xsb.push("dependencies");
+ for (Map.Entry<String, String> entry : m_xmlDependencyGroups.entrySet()) {
+ xsb.addEmptyElement("group", "name", entry.getKey(), "depends-on", entry.getValue());
+ }
+ xsb.pop("dependencies");
+ }
+
xsb.pop("groups");
}
@@ -824,7 +836,12 @@
}
public void addXmlDependencyGroup(String group, String dependsOn) {
- m_xmlDependencyGroups.put(group, dependsOn);
+ if (! m_xmlDependencyGroups.containsKey(group)) {
+ m_xmlDependencyGroups.put(group, dependsOn);
+ } else {
+ throw new TestNGException("Duplicate group dependency found for group \"" + group + "\""
+ + ", use a space-separated list of groups in the \"depends-on\" attribute");
+ }
}
public Map<String, String> getXmlDependencyGroups() {