Allure Framework: использование аннотаций @Step и @Attachment с TestNG и Maven

Я работаю над проектом, в котором используется фреймворк Allure с Java, TestNG и Maven. Но я не могу генерировать правильные файлы XML при использовании аннотаций Allure @Step и @Attachment в моей программе Java. Приветствуется любой пример кода, демонстрирующий использование вышеуказанных аннотаций. Я использую Allure 1.4.0.RC8.


person JavaCreeper    schedule 06.08.2014    source источник
comment
Файлы XML не используют аннотации.   -  person    schedule 07.08.2014
comment
Возможно неправильно отредактировал вопрос. Исправлено сейчас.   -  person vania-pooh    schedule 07.08.2014
comment
@JavaCreeper: вы считаете мой ответ правильным?   -  person vania-pooh    schedule 13.08.2014


Ответы (2)


Эти аннотации используются одинаково с любой тестовой средой на основе Java.

Чтобы создать шаг:

  • Создайте метод с любым модификатором видимости (public, private, protected) с пошаговой логикой и аннотируйте его аннотацией @Step. При желании вы можете указать имя шага в атрибутах аннотации.
  • Вызовите этот метод внутри тестового метода.

Пример:

@Test
public void someTest() throws Exception {
    //Some code...
    stepLogic();
    //Some more assertions...
}

@Step("This is step 1")
private void step1Logic() {
    // Step1 implementation
} 

@Step("This is step 2")
private void step2Logic() {
    // Step2 implementation
}

Чтобы создать вложение:

  • Создайте метод с любой видимостью, который возвращает byte[] - содержимое вложения и аннотируйте его аннотацией @Attachment.
  • Вызовите этот метод внутри любого теста

Пример:

@Test
public void someTest() throws Exception {
    //Some code...
    createAttachment();
    //Some more assertions...
}

@Attachment(name = "My cool attachment")
private byte[] createAttachment() {
    String content = "attachmentContent";
    return content.getBytes();
} 

Чтобы аннотации @Step и @Attachment работали, вам необходимо правильно включить AspectJ в вашей конфигурации. Обычно это делается с помощью аргумента JVM -javaagent, указывающего на файл aspectj-weaver.jar.

Дальнейшее чтение:

person vania-pooh    schedule 07.08.2014

Вы также можете использовать параметры для аннотации @Step. Например, если метод принимает некоторые переменные:

@Step("Get the maximum between {a} and {b}")
public int max(int a, int b){
    //implementation
}

Если вам нужно использовать какой-либо объект, вы можете переопределить метод toString() или использовать необходимые параметры:

public class User {

     private String name;
     private String password;
     ...
}

@Step("Type {user.name} / {user.password}.")
public void loginWith(User user) {
     ...
}
person Valentyn Hruzytskyi    schedule 24.06.2021