Как пропустить класс testNG на основе видимости элемента и переключиться на другой класс - PullRequest
0 голосов
/ 05 марта 2019

Я использую testNG для своего набора селена. Есть класс, имеющий 35 тестовых случаев. Но эти тесты будут выполняться только в том случае, если определенный элемент будет видим Если этот элемент не виден, компилятор проходит все тесты. Есть ли способ проверить состояние видимости элемента только в аннотации @BeforeClass? Если элемент не виден, он должен выйти из этого класса и переключиться на следующий? Это сэкономит мое время, чтобы пройти все контрольные примеры?

Ответы [ 3 ]

0 голосов
/ 05 марта 2019

Вы можете использовать disabledOnMethods TestNG аннотации теста.

@Test
public void elementVisibleTest(){
  //Fail or skip here
}

@Test(dependsOnMethods = {"elementVisibleTest"})
public void myOtherTest(){
  //Do something
}
...

Это означает, что если elementVisibleTest не пройден или пропущен, все тесты, которые зависят от этого теста, также будут пропущены. Преимущество этого состоит в том, что у вас все еще могут быть другие тесты в этом классе, которые будут выполняться (потому что они не зависят от elementVisibleTest).

0 голосов
/ 07 марта 2019

Один из подходов - добавить группу ко всем таким тестам, скажем, flow-1. Добавьте метод перед группой и сгенерируйте исключение, если оно не соответствует требуемому условию. Например:

    @BeforeGroups(groups="flow-1")
    public void flow1() {
        if(!requiredCondtionMatch) {
            throw new SkipException("Flow not applicable");
        }
    } 

Если все тесты подпадают под один класс, то вы также можете использовать @BeforeClass.

0 голосов
/ 05 марта 2019

Для этого используйте аннотацию @Test на уровне класса и @BeforeTest, чтобы проверить видимость элемента, чтобы он пропустил все тестовые случаи класса, если он не будет удовлетворять условию в @BeforeTest. Посмотрите код ниже (это проверено и работает).

@Test
public class SkipAllTestCases {

    boolean elementNotVisible=true;

    @BeforeTest
    public void setUp() {

        if (elementNotVisible) {

            throw new SkipException("skipping test cases...");
        }

    }

    public void test1() {
        System.out.println("Test1");

    }


    public void test2() {
        System.out.println("Test2");

    }


    public void test3() {
        System.out.println("Test3");

    }

}

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

...