package ru.yandex.qatools.allure.config; import org.junit.Test; import org.junit.runner.RunWith; import org.junit.runners.Parameterized; import javax.xml.transform.stream.StreamSource; import javax.xml.validation.Validator; import java.io.File; import java.io.FilenameFilter; import java.net.URL; import java.util.ArrayList; import java.util.Collection; /** * @author Artem Eroshenko eroshenkoam@yandex-team.ru * Date: 12/10/13 */ @RunWith(Parameterized.class) public class ResultsSchemaValidationTest { public static final String ALLURE_RESULTS_DIRECTORY_PATH = "allure-results"; private final File testSuiteFile; public ResultsSchemaValidationTest(File testSuiteFile) { this.testSuiteFile = testSuiteFile; } @Parameterized.Parameters public static Collection<Object[]> getTestSuiteFileCollection() { Collection<Object[]> testSuiteFileCollection = new ArrayList<>(); URL url = ResultsSchemaValidationTest.class.getClassLoader().getResource(ALLURE_RESULTS_DIRECTORY_PATH); if (url != null) { File results = new File(url.getFile()); for (String testSuiteFilePath : getTestSiteFilesInDirectory(results)) { testSuiteFileCollection.add(new Object[]{new File(results, testSuiteFilePath)}); } } return testSuiteFileCollection; } private static String[] getTestSiteFilesInDirectory(File directory) { return directory.list(new FilenameFilter() { @Override public boolean accept(File dir, String name) { return name.matches(AllureConfig.newInstance().getTestSuiteFileRegex()); } }); } @Test public void testSuiteFileValidationTest() throws Exception { Validator validator = AllureModelUtils.getAllureSchemaValidator(); validator.validate(new StreamSource(testSuiteFile)); } }