Как запустить Method1, представленный в 100 классах в пакете, используя testng.xml? - PullRequest
0 голосов
/ 25 февраля 2019

Мне нужно запустить метод Method1 в пакете, структура которого выглядит как

Package - Regression
     |--class1
         |-method1
         |-method2
     |--class2
         |-method1
         |-method2
     |--class3 
     .
     .
     and so on goes to classN where N can be from 100 to 2000.

Теперь мне нужно написать testNG.xml - это способ, которым method1, присутствующий во всех классах, выполняется на уровне пакета

или В будущем Если мне нужно выполнить method1 и method2 на уровне пакета?

Заранее спасибо за решение

1 Ответ

0 голосов
/ 25 февраля 2019

Вы можете сделать это очень легко, используя селектор метода BeanShell.

Вот пример

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="54859054_suite" verbose="2">
  <method-selectors>
    <method-selector>
      <script language="beanshell">
        <![CDATA[
        whatMethod = System.getProperty("methodToExecute", "testMethod1");
        method.getName().equals(whatMethod);
        ]]>
      </script>
    </method-selector>
  </method-selectors>
  <test name="54859054_test">
    <packages>
      <package name="com.rationaleemotions.stackoverflow.qn54859054"/>
    </packages>
  </test>
</suite>

Вышеуказанный BeanShell по умолчанию будет выполнять методы с именем "testMethod1" (так как егозначение по умолчанию, которое мы предоставили для аргумента JVM methodToExecute.

Если вы хотите изменить его значение во время выполнения, вы просто передаете новое значение через arugment JVM. Например, -DmethodToExecute=testMethod2

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