package ru.yandex.qatools.allure.testng; import org.junit.*; import org.testng.TestNG; import ru.yandex.qatools.allure.config.AllureModelUtils; import ru.yandex.qatools.allure.testng.testdata.TestDataClass; import ru.yandex.qatools.allure.utils.AllureResultsUtils; import javax.xml.transform.stream.StreamSource; import javax.xml.validation.Validator; import java.io.*; import java.nio.file.*; import static org.hamcrest.core.Is.is; import static org.junit.Assert.assertThat; import static ru.yandex.qatools.allure.commons.AllureFileUtils.listTestSuiteFiles; /** * @author Kirill Kozlov kozlov.k.e@gmail.com * Date: 04.02.14 */ public class AllureTestListenerXmlValidationTest { private static final String DEFAULT_SUITE_NAME = "suite"; private static final String ALLURE_RESULTS = "allure-results"; private static Path resultsDir; @Before public void setUp() throws IOException { resultsDir = Files.createTempDirectory(ALLURE_RESULTS); AllureResultsUtils.setResultsDirectory(resultsDir.toFile()); TestNG testNG = new TestNG(); testNG.setDefaultSuiteName(DEFAULT_SUITE_NAME); testNG.setTestClasses(new Class[]{TestDataClass.class}); testNG.setUseDefaultListeners(false); testNG.run(); } @After public void tearDown() throws IOException { AllureResultsUtils.setResultsDirectory(null); AllureTestUtils.deleteNotEmptyDirectory(resultsDir); } @Test public void suiteFilesCountTest() throws Exception { assertThat(listTestSuiteFiles(resultsDir.toFile()).size(), is(1)); } @Test public void validateSuiteFilesTest() throws Exception { Validator validator = AllureModelUtils.getAllureSchemaValidator(); for (File each : listTestSuiteFiles(resultsDir.toFile())) { validator.validate(new StreamSource(each)); } } }