Невозможно добавить аннотацию к существующему классу во время выполнения; см. Добавление 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 и запустите соответствующие тестовые классы или методы испытаний программно.