Как я могу получить параметры для этого теста, используя org.testng.TestNG? - PullRequest
0 голосов
/ 06 июня 2018

Я тестирую приложение веб-клиента с использованием Java 8 Update 151 и Selenium 3.8.1.и TestNG.Я должен запустить один тест из уже запущенного теста.

Вот мой код для этого:

ITestNGListener testListenerAdapter = null;
TestNG testNG = new TestNG();
testNG.addListener(testListenerAdapter);
testNG.setTestClasses(new Class[] { tests.login.LoginTest.class });
testNG.run();

Мои тесты выполняются с использованием набора параметров, определенных в файле testng.xml, но это не позволяет подобрать эти параметры, что приводит к сбою теста.

Это вершина моего testng.xml:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
<suite name="tests">
    <parameter name="browser" value="firefox" />
    <parameter name="url" value="URL goes here!"/>
    <parameter name="printToFile" value="false" />
    <parameter name="trace" value="false" />
    <parameter name="opt" value="true" />
    <parameter name="customer" value="Demo" />
    <parameter name="network" value="NSG Designated Streets (Type 1/2)" />
    <parameter name="buildNo" value="312" />
    <listeners>
         <listener class-name="listeners.TestNGCustomReportListener" />
    </listeners>
    <test name="firefoxTest">
        <parameter name="browser" value="firefox" />
        <parameter name="url" value="URL goes here!" />
        <parameter name="printToFile" value="false" />
        <parameter name="trace" value="false" />
        <parameter name="opt" value="true" />
        <parameter name="customer" value="Demo" />
        <parameter name="network" value="NSG Designated Streets (Type 1/2)" />

Я попытался добавить @Parameters вНачало теста, как показано здесь, но это не сработало.Не было выбрано ни одного параметра.

public class AutoLogOutTest extends CrossBrowserTest {
@Parameters("url")
@Test(groups = { "all", "login", "simple" })
public void autoLogOut(@Optional("") String url) {

Это описано здесь, но не работает, так как автор предполагает, что оно должно: http://toolsqa.com/selenium-webdriver/testng-parameters-data-provider/

По некоторым причинам testng 6.4 и выше больше не поддерживаетпараметр внутри метода: Есть ли способ указать параметры для включенных методов в TestNG suite.xml?

Как мне получить параметры в этом тесте?

1 Ответ

0 голосов
/ 09 июня 2018

Прежде всего, вы нигде не используете DataProvider в упомянутом тесте.Во-вторых, вам нужно выбрать, запустить XML или файл класса, вы не можете запустить оба.Если вы хотите использовать параметры XML, вам нужно использовать файл XML, а не LoginTest.class.

Вы можете использовать XML-файл следующим образом:

 XmlSuite suite = new XmlSuite();
 suite.setName("TmpSuite");
 XmlTest test = new XmlTest(suite);
 test.setName("TmpTest");
 List<XmlClass> classes = new ArrayList<XmlClass>();
 classes.add(new XmlClass("test.failures.Child"));
 test.setXmlClasses(classes) ;

И затем вы можете передать этот XmlSuite в TestNG:

List<XmlSuite> suites = new ArrayList<XmlSuite>();
suites.add(suite);
TestNG tng = new TestNG();
tng.setXmlSuites(suites);
tng.run();

Класс не знает оXML-файл при запуске TestNG.

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