Есть проект Maven. Подключил Allure репорт.Создал файл envirinment.properties. После выполнения тестов перетаскиваю файл в папку allure-results, с которой генерится отчет. Как сделать чтоб после выполнения тестов этот файл автоматически попадал в папку allure-results, или просто не удалялся после каждого прогона тестов?
1 лайк
- Делаем метод который создает файл envirinment.properties в папке allure-results и записывает туда значения
String path = System.getProperty("allure.results.directory");
try {
Properties props = new Properties();
FileOutputStream fos = new FileOutputStream(path + "/environment.properties");
props.setProperty("property_name", "property_value");
props.store(fos, "See https://github.com/allure-framework/allure-app/wiki/Environment");
fos.close();
} catch (Exception e) {
System.err.println("IO problem when writing allure properties file");
e.printStackTrace();
}
- Дергаем этот метод в AfterSuite
Кстати 3 минуты гугления дают еще такую штуку вот удобую.
1 лайк
Я просто создал шаблон xml, и кодом в одном тесте беру шаблон, заполняю его, потом копирую в allure-results
<environment>
<parameter>
<key>Browser, version</key>
<value>Browser, version</value>
</parameter>
<parameter>
<key>UI version</key>
<value>UI version</value>
</parameter>
<parameter>
<key>Monolith version</key>
<value>Monolith version</value>
</parameter>
<parameter>
<key>Bank URL</key>
<value>Bank URL</value>
</parameter>
<parameter>
<key>Client URL</key>
<value>Client URL</value>
</parameter>
<parameter>
<key>Runner platform</key>
<value>Runner platform</value>
</parameter>
<parameter>
<key>Репозиторий автотестов</key>
<value>ссылка на репозиторий</value>
</parameter>
</environment>
public static void SetAllureEnvironment()
{
Directory.CreateDirectory(ProjectEnvironment.AllureResults);
if(TestContext.CurrentContext.Test.Properties.Get("Description").ToString().Contains("Успешная авторизация клиента"))
{
File.Delete(ProjectEnvironment.AllureResults + "/environment.xml");
File.Delete(ProjectEnvironment.AllureResults + "/categories.json");
XmlDocument env = new XmlDocument();
env.Load(ProjectEnvironment.Allure + "/environment.xml");
XmlElement root = env.DocumentElement;
ICapabilities capabilities = ((RemoteWebDriver)BaseSteps.Browser).Capabilities;
var parameter = root.SelectSingleNode("//key[text() = 'Browser, version'] / ancestor::parameter / value").FirstChild;
parameter.InnerText = capabilities.GetCapability("browserName").ToString() +
", " + capabilities.GetCapability("browserVersion").ToString();
if (BaseSteps.DBOUIversion.Contains("1."))
{
parameter = root.SelectSingleNode("//key[text() = 'UI version'] / ancestor::parameter / value");
parameter.InnerText = BaseSteps.DBOUIversion;
}
parameter = root.SelectSingleNode("//key[text() = 'Monolith version'] / ancestor::parameter / value");
parameter.InnerText = BaseSteps.DBOMonolithVersion;
parameter = root.SelectSingleNode("//key[text() = 'Bank URL'] / ancestor::parameter / value");
parameter.InnerText = URLs.Bank;
parameter = root.SelectSingleNode("//key[text() = 'Client URL'] / ancestor::parameter / value");
parameter.InnerText = URLs.Client;
parameter = root.SelectSingleNode("//key[text() = 'Runner platform'] / ancestor::parameter / value");
parameter.InnerText = capabilities.GetCapability("platformName").ToString();
env.Save(ProjectEnvironment.AllureResults + "/environment.xml");
File.Copy(ProjectEnvironment.Allure + "/categories.json", ProjectEnvironment.AllureResults + "/categories.json");
}