blob: e8c9bd8ebcf1a4e7f3d5c0a6a947ac342c93f34c [file] [log] [blame]
package test.reports;
import javax.xml.parsers.ParserConfigurationException;
import org.testng.Assert;
import org.testng.TestListenerAdapter;
import org.testng.TestNG;
import org.testng.annotations.Test;
import org.testng.collections.Lists;
import org.testng.reporters.FailedReporter;
import org.testng.xml.Parser;
import org.testng.xml.XmlClass;
import org.testng.xml.XmlSuite;
import org.testng.xml.XmlTest;
import org.xml.sax.SAXException;
import test.SimpleBaseTest;
import java.io.ByteArrayInputStream;
import java.io.File;
import java.io.IOException;
import java.util.Collection;
public class FailedReporterTest extends SimpleBaseTest {
private static final String XML = "<suite name=\"Suite\">\n"
+ "<parameter name=\"n\" value=\"42\"/>\n"
+ "<test name=\"Test\">\n"
+ "<classes>\n"
+ "<parameter name=\"o\" value=\"43\"/>\n"
+ "<class name=\"test.reports.FailedSampleTest\">\n"
+ "<parameter name=\"p\" value=\"44\"/>\n"
+ "</class>"
+ "</classes>"
+ "</test></suite>";
@Test
public void failedFile() throws ParserConfigurationException, SAXException, IOException {
TestNG tng = new TestNG();
tng.setVerbose(0);
Collection<XmlSuite> suites =
new Parser(new ByteArrayInputStream(XML.getBytes())).parse();
tng.setXmlSuites(Lists.newArrayList(suites));
TestListenerAdapter tla = new TestListenerAdapter();
File f = new File("/tmp");
tng.setOutputDirectory(f.getAbsolutePath());
tng.addListener(tla);
tng.run();
Collection<XmlSuite> failedSuites =
new Parser(new File(f, FailedReporter.TESTNG_FAILED_XML).getAbsolutePath()).parse();
XmlSuite failedSuite = failedSuites.iterator().next();
Assert.assertEquals("42", failedSuite.getParameter("n"));
XmlTest test = failedSuite.getTests().get(0);
Assert.assertEquals("43", test.getParameter("o"));
XmlClass c = test.getClasses().get(0);
Assert.assertEquals("44", c.getAllParameters().get("p"));
}
}