package ru.yandex.qatools.allure.config; import ru.qatools.properties.Property; import ru.qatools.properties.PropertyLoader; import ru.qatools.properties.Resource; import java.io.File; import java.nio.charset.Charset; import java.nio.charset.StandardCharsets; /** * @author Artem Eroshenko eroshenkoam@yandex-team.ru * Date: 12/13/13 */ @SuppressWarnings("unused") @Resource.Classpath("allure.properties") public class AllureConfig { protected static final File DEFAULT_RESULTS_DIRECTORY = new File("target/allure-results"); public static final int DEFAULT_MAX_TITLE_LENGTH = 120; @Property("allure.model.schema.file.name") protected String schemaFileName = "allure.xsd"; @Property("allure.report.remove.attachments") protected String removeAttachments = "a^"; @Property("allure.results.testsuite.file.regex") protected String testSuiteFileRegex = ".*-testsuite\\.xml"; @Property("allure.results.testsuite.file.suffix") protected String testSuiteFileSuffix = "testsuite"; @Property("allure.results.testsuite.file.extension") protected String testSuiteFileExtension = "xml"; @Property("allure.results.attachment.file.regex") protected String attachmentFileRegex = ".+-attachment(\\..+)?"; @Property("allure.results.attachment.file.suffix") protected String attachmentFileSuffix = "-attachment"; @Property("allure.results.environment.xml.file.name") protected String environmentXmlFileRegex = ".*environment\\.xml"; @Property("allure.results.environment.properties.file.name") protected String environmentPropertiesFileRegex = ".*environment\\.properties"; @Property("allure.results.directory") protected File resultsDirectory = DEFAULT_RESULTS_DIRECTORY; @Property("allure.attachments.encoding") protected Charset attachmentsEncoding = StandardCharsets.UTF_8; @Property("allure.max.title.length") protected int maxTitleLength = DEFAULT_MAX_TITLE_LENGTH; /** * Pattern containing issue tracker base URL and one %s placeholder which will be replaced by issue name. * Example: http://example.com/%s and @Issue("SOME-123") will give you http://example.com/SOME-123 */ @Property("allure.issues.tracker.pattern") protected String issueTrackerPattern = "%s"; /** * Pattern containing Test Management System (TMS) and one %s placeholder which will be replaced by test id. * Currently there is no special annotation to define TMS test id in your tests. Work in progress... * Example: http://example.com/%s and <label name="testId" value="SOME-123"/> will give you http://example.com/SOME-123 */ @Property("allure.tests.management.pattern") protected String tmsPattern = "%s"; @Property("allure.testng.parameters.enabled") protected boolean testNgParametersEnabled = true; protected String version = getClass().getPackage().getImplementationVersion(); public AllureConfig() { PropertyLoader.newInstance().populate(this); } public static AllureConfig newInstance() { // NOSONAR return new AllureConfig(); } public String getSchemaFileName() { return schemaFileName; } public String getRemoveAttachments() { return removeAttachments; } public String getTestSuiteFileRegex() { return testSuiteFileRegex; } public String getTestSuiteFileSuffix() { return testSuiteFileSuffix; } public String getTestSuiteFileExtension() { return testSuiteFileExtension; } public String getAttachmentFileRegex() { return attachmentFileRegex; } public String getAttachmentFileSuffix() { return attachmentFileSuffix; } public String getEnvironmentXmlFileRegex() { return environmentXmlFileRegex; } public String getEnvironmentPropertiesFileRegex() { return environmentPropertiesFileRegex; } public File getResultsDirectory() { return resultsDirectory; } public Charset getAttachmentsEncoding() { return attachmentsEncoding; } public int getMaxTitleLength() { return maxTitleLength; } public String getIssueTrackerPattern() { return issueTrackerPattern; } public String getTmsPattern() { return tmsPattern; } public boolean areTestNgParametersEnabled() { return testNgParametersEnabled; } public String getVersion() { return version; } /** * For tests only */ public void setResultsDirectory(File resultsDirectory) { this.resultsDirectory = resultsDirectory; } public static File getDefaultResultsDirectory() { return DEFAULT_RESULTS_DIRECTORY; } }