Установка тестовой аннотации динамически - PullRequest
0 голосов
/ 16 апреля 2020

Я хочу создать управляемую данными инфраструктуру, в которой тест будет выполняться на основе данных в excel.

В настоящее время, когда я выполняю тесты, все результаты только под одним именем testName.

То, что я ищу, - это чтобы каждая итерация рассматривалась как отдельный тест.

1 Ответ

0 голосов
/ 16 апреля 2020

Невозможно добавить аннотацию к существующему классу во время выполнения; см. Добавление Java аннотаций во время выполнения . В этих вопросах и ответах предлагается использовать Proxy to или адаптер для решения этой проблемы, но я не думаю, что этот подход будет работать для тестирования TestNG.

Возможно, вам потребуется другой подход. Раздел 5.14 документации TestNG содержит пример, показывающий, как программно запускать тесты в классе тестирования:

TestListenerAdapter tla = new TestListenerAdapter();
TestNG testng = new TestNG();
testng.setTestClasses(new Class[] { Run2.class });
testng.addListener(tla);
testng.run();

В этом примере создается объект TestNG и выполняется тестовый класс Run2. Это также добавляет TestListener. Вы можете использовать адаптер класса org.testng.TestListenerAdapter или реализовать org.testng.ITestListener самостоятельно. Этот интерфейс содержит различные методы обратного вызова, которые позволяют отслеживать, когда тест запускается, успешно выполняется, не выполняется и т. Д. c ...

Затем В разделе 5.17 объясняется, как использовать метод-перехватчик для массажа списка вызываемых методов. Наконец, Раздел 5.18 объясняет различные способы указания TestNG использовать прослушиватели, такие как метод-перехватчик.

Если вы объедините их с кодом для извлечения данных из электронной таблицы Excel и запустите соответствующие тестовые классы или методы испытаний программно.

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