Пропуск выполнения теста с использованием testng.xml - PullRequest
0 голосов
/ 01 июля 2019

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

Однако, когда мы попытались запустить сценарий с этим подходом, мы либо можем запустить весь сценарий (не можем пропустить тесты и все они проваливаются, еслипервый сбой) или ни один из них не запускается вообще.

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

Первый тест:

import org.testng.Assert;
import org.testng.annotations.Test; /** * Hello world! * */
public class App {
 @Test(groups = "FirstGroup") public void testCase1() {
  boolean x = true;
  System.out.println("Test Case 1");
  Assert.assertEquals(x, true);
 }
}

Второй тест:

import org.testng.Assert;
import org.testng.annotations.Test;
public class App2 {
 @Test(groups = "SecondGroup") public void testCase2() {
  boolean x = true;
  System.out.println("Test Case 2");
  Assert.assertEquals(x, false);
 }
}

testng.xml

<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
<suite name="softwaretestingmaterial">
    <test name="testngTest">
        <classes>
            <class name="Project.Test.Test.App" />
        </classes>
    </test>
    <test name="testngTest2">
        <groups>
            <run>
                <include name="Project.Test.Test.App" />
                <include name="Project.Test.Test.App2" />
            </run>
            <dependencies>
                <group name="SecondGroup" depends-on="FirstGroup"></group>
            </dependencies>
        </groups>
        <classes>
            <class name="Project.Test.Test.App2" />
        </classes>
    </test>
</suite>

1 Ответ

0 голосов
/ 01 июля 2019

Возможно, вы захотите указать эти зависимости в виде аннотаций, показанных ниже, вместо того, чтобы указывать их в файле TestNg.xml.

import org.testng.Assert;
import org.testng.annotations.Test;
public class App2 {
 **@Test(groups = "SecondGroup", dependsOnMethods = { "testCase1" })** 
public void testCase2() {
  boolean x = true;
  System.out.println("Test Case 2");
  Assert.assertEquals(x, false);
 }
}

Обновленный ответ: Да, вы правы в этом.Кажется, что нет простого способа достичь этого.Тем не менее, я немного прочитал и нашел это: https://www.seleniumeasy.com/testng-tutorials/skip-test-in-testng

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

Ваш последний вариант - использовать ITestListener в сочетании с таблицей Excel, в которой хранится состояние «Пройдено / не выполнено» вашегоПриоритетный тест и пропускает тесты соответственно

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