Проблема в создании файла TestNG.xml - PullRequest
0 голосов
/ 21 декабря 2018

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

Мой код:

package Testcases;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import org.testng.TestListenerAdapter;
import org.testng.TestNG;
import org.testng.xml.XmlClass;
import org.testng.xml.XmlSuite;
import org.testng.xml.XmlTest;

public class GenerateTestng
{
    @SuppressWarnings("deprecation")
    public void runTestNGTest() {

        //Create an instance on TestNG
         TestNG myTestNG = new TestNG();

        //Create an instance of XML Suite and assign a name for it.
         XmlSuite mySuite = new XmlSuite();
         mySuite.setName("MySuite");

        //Create an instance of XmlTest and assign a name for it.
         XmlTest myTest = new XmlTest(mySuite);
         myTest.setName("Wepaythemaxx");


        //Create a list which can contain the classes that you want to run.
         List<XmlClass> myClasses = new ArrayList<XmlClass> ();
         myClasses.add(new XmlClass("Testcases.FinalTest"));

        //Assign that to the XmlTest Object created earlier.
         myTest.setXmlClasses(myClasses);

        //Create a list of XmlTests and add the Xmltest you created earlier to it.
         List<XmlTest> myTests = new ArrayList<XmlTest>();
         myTests.add(myTest);

        //add the list of tests to your Suite.
         mySuite.setTests(myTests);

        //Add the suite to the list of suites.
         List<XmlSuite> mySuites = new ArrayList<XmlSuite>();
         mySuites.add(mySuite);

        //Set the list of Suites to the testNG object you created earlier.
         myTestNG.setXmlSuites(mySuites);

         TestListenerAdapter tla = new TestListenerAdapter();
         myTestNG.addListener(tla);

        //invoke run() - this will run your class.
         myTestNG.run();
        }
    public static void main(String[] args)
    {
        GenerateTestng dt = new GenerateTestng();
         dt.runTestNGTest();
    }

}

Я вложил свой код выше, пожалуйста, проверьте, где я сделал ошибку, я не могу понять.

Ответы [ 2 ]

0 голосов
/ 21 декабря 2018

Я создал этот метод, который будет сохранять файл:

public void createXmlFile(String saveFilePath, XmlSuite suiteName) {
    File file = new File(saveFilePath);
    FileWriter writer = null;
    try {
        writer = new FileWriter(file);
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    try {
        writer.write(suiteName.toXml());
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    System.out.println(suiteName.toXml());
    try {
        writer.close();
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
}

Где

  • saveFilePath = путь, где будет сохранен файл, например, '.testNGxml.xml'
  • suiteName = имя вашего набора, в вашем случае mySuite
0 голосов
/ 21 декабря 2018

Eclipse имеет расширение TestNG, которое создает xml самостоятельно.Затем вы можете отредактировать xml, чтобы изменить порядок запуска тестов (например, вы можете создавать фиктивные данные, редактировать упомянутые данные и удалять их, например, не получая ошибки).

Я уверен, что большинство IDE имеютпохожие подходы.

По какой причине вы не используете IDE ?.

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