Allure 2.0 - нововведения / грядущие изменения

Нет, в первой версии плейсхолдеры работают по индексам:

@Step("Type {0} into username field, {1} into password field.")
public LoginPage loginWith(final String username, final String password) {
}

А если передать кастомный тип:

@Step("Login with {0}.")
public LoginPage loginWith(final User user) {
}

для вывода полей определенной вложенности, надо особым образом переопределять toString(), игнорируя лишний шум:

public String toString() {
    return "[username=" + getUsername() + 
           ", password=" + getPassword() + "]";
}

Теперь же можно просто указать конкретный филд, который необходимо извлечь из кастомного типа, и вывести вместо плейсхолдера.

@Step("Login with {user.username} / {user.password}.")
public LoginPage loginWith(final User user) {
}

Спасибо, за развернутый ответ.
Могу создать отдельную тему, но спрошу пока в пределах этой.

Могу ли я вытянуть не значение требуемого поля, а название этой переменной. К примеру, если у меня есть переменная

private By loginButtonLocator = By.cssSelector("#login");

и я хочу, чтобы в отчете отображалось не значение #login, а loginButtonLocator. Такое возможно?

Нет, т.к. по-умолчанию работа с аргументами ведется на уровне значений, а не имен. В целом, это возможно при использовании AOP. Но с точки зрения технической реализации такой подход оставляет больше вопросов, чем ответов. Как понять, что пользователь хочет извлечь именно имя, а не значение? Разве что добавить какие-то зарезервированные keywords. Но что, если они совпадут с названиями полей класса? Проще уже с клиентской стороны обернуть By каким-то кастомным типом и добавить возможность задания имени элемента. Тогда доступ к нему будет осуществляться по выше указанной схеме.

1 лайк

Идею понял, спасибо

А интересует такой вопрос.
Allure 2.0 поддерживает русский язык в аннотациях?
У меня к сожалению вот такое выдает внутри отчета: Description

добрій вечер
Буду благодарен за помощь.

Должен поддерживаться. Писали то ребята из Яндекса. Хотя, уже и не работают там, но все же. Если есть проблемы с выводом, то проще завести issue на GitHub c детальными степами.

Спасибо за подсказку

Проверьте кодировку файлов и в мавене
Должно быть UTF-8, работает все без проблем

Настройки в мавене:

<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>

Доброй ночи. Я использую gradle. Спасибо за подсказку. Проблему решил.

так пишите как :slight_smile: может кому-то пригодиться