TestNG XML создан программно, не выполняя тестовые случаи - PullRequest
2 голосов
/ 05 июня 2019

Я создал класс, который должен создать и выполнить xml-файл testng.

public static void runTestNG_XML() {
    XmlSuite suite = new XmlSuite();
    suite.setName("All_TC");
    XmlTest test = new XmlTest(suite);
    test.setName("All_TC");
    XmlRun xmlRun = new XmlRun();
    xmlRun.onInclude(test.getName());
    List<XmlPackage> packages = new ArrayList<XmlPackage>();
    packages.add(new XmlPackage("testCases.*"));
    test.setXmlPackages(packages);
    List<XmlSuite> suites = new ArrayList<XmlSuite>();
    suites.add(suite);
    TestNG tng = new TestNG();
    tng.setXmlSuites(suites);
    TestListener tla = new TestListener();
    tng.addListener((ITestNGListener) tla);
    tng.run();
}

Это создаст следующий XML-файл:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="All_TC">
  <test name="All_TC">
    <packages>
      <package name="testCases.*"/>
    </packages>
  </test> <!-- All_TC -->
</suite> <!-- All_TC -->

При выполнении тестовые случаине выполненоОбщее количество выполненных тестов: 0, сбоев: 0, пропусков: 0

Если я запускаю XML как комплект TestNG, он работает.

Что замечено, так это то, что при запуске вручную, в консоли я имеюдо выполнения тестов:

[TestNG] Running: C:\Xml_Path\testng_auto.xml

но при запуске с использованием приведенного выше класса у меня есть до запуска выполнения:

[TestNG] Running: Command line suite 

но это может быть потому, что используется CMD.

Тесты:

package testCases;

import org.testng.annotations.Test;

public class Scenario_1 {

    @Test
    public void TestCase_1() {
        System.out.print("test1");
    }

    @Test
    public void TestCase_2() {
        System.out.print("test2");
    }

}

testng-версия: 6.14.3

Спасибо,

Обновление <------------- </p>

Я добавил подробный уровень и получаю следующую ошибку.

[TestNG] Тесты не найдены.Ничего не было запущено

Я пытался изменить XmlPackage на:

test.src.test.java.testCases.*
src.test.java.testCases.*
test.java.testCases.*
java.testCases.*
test.src.test.java.testCases
src.test.java.testCases
test.java.testCases
java.testCases

ничего не получалось.Вот структура проекта:

enter image description here

1 Ответ

1 голос
/ 09 июня 2019

Проблема в вашем коде.

Я предполагаю, что Executor.createXML.java - это место, где находится метод runTestNG_XML().

На скриншоте выглядит, как будто этот класс находится вsrc/main/java но пакет тестового класса, который он пытается добавить, а именно, пакет testCases находится в src/test/java.

Вы не можете иметь код Java, который находится в src/main/java, ссылаются на код Java, которыйпроживает в src/test/java.Это объясняет, почему TestNG не может найти ваши тестовые классы и ничего не запускается.

Чтобы это исправить, либо переместите Executor.createXML.java на src/test/java (или) Переместите ваш пакет testCases на src/main/java

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