Невозможно получить значение параметра из testng.xml, когда тестовый класс запускается как «TestNG Test»

1

Чтобы получить тип браузера (на котором я хочу запустить тесты Selenium) из testng.xml, я написал код, например:

public class TestClass {

    @BeforeClass
      public void beforeClass(ITestContext context) {
          String browser = context.getCurrentXmlTest().getParameter("browser");

          if(browser.equals("firefox")){
            driver = new FirefoxDriver();
          }
.
.
.

Ниже приведен мой testng.xml -

<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >

<suite name="Task-Manager-Suite" verbose="10" >
    <parameter name="browser" value="firefox" />
  <test name="Test" >
    <classes>
      <class name="org.test.st.StackOverflowTest" />
    </classes>
  </test>
</suite>

Когда я запускаю testng.xml, тестовый запуск отлично, и browser устанавливается с упоминанием значения в теге parameter в testng.xml

Но когда я открываю другой файл тестового класса, щелкнув его правой кнопкой мыши и выбрав "Запустить как" → "Тест TestNG", значение browser будет установлено равным null. Он не получает значения от testng.xml

Есть ли что-нибудь после этого, что я могу запустить файл тестового класса, и значение браузера будет testng.xml из testng.xml?

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

Вот почему я ищу что-то, с помощью которого я могу избежать редактирования testng.xml каждый раз, когда хочу проверить выполненные мной тесты.

Пожалуйста, укажите мне какую-то ссылку в блоге или github, где эта проблема устранена.

Теги:
selenium
selenium-webdriver
testng

2 ответа

1

Это связано с тем, что, когда вы запускаете из тестового класса как "Запуск от> теста testng", TestNg создаст собственный XML файл, в котором указанный вами параметр не будет. Поэтому, чтобы получить ваши параметры в файле пакета, выберите файл своего пакета и запустите в качестве> TestNG Suite.

Если вы настаиваете на запуске из своего тестового класса, установите файл Suite как файл XML шаблона в eclipse в Project> Properties> Template XML file.

Надеюсь, поможет

0

Я использую:

@Parameters{"browser"}
public void beforeClass(@Optional("firefox") String browser) {
    // ...
}

Ещё вопросы

Сообщество Overcoder
Наверх
Меню