Как закрыть браузер после сбоя теста во время параллельного тестирования

Как указано в других ответах, ваша ошибка возникает из расчета длины вашего ввода в начале, а затем не обновляя его, когда вы сокращаете список.

Вот еще одно взятие в рабочем решении:

with open('toy.txt', 'r') as infile:
    input_lines = reversed(map(lambda s: s.strip(), infile.readlines()))

output = []
for pattern in input_lines:
    if len(output) == 0 or not output[-1].startswith(pattern):        
        output.append(pattern)

print('\n'.join(reversed(output)))
0
задан Ishita Shah 21 January 2019 в 05:24
поделиться

1 ответ

Проблема в том, что когда вы запускаете класс Test и вызывается @AfterMethod, он пытается выйти из драйвера, принадлежащего верхнему классу, но не из классов, которые создаются в методах. Вот небольшой пример для лучшего понимания:

Класс теста JUnit:

import org.junit.Test;
import org.junit.After;

public class intTestClass extends Methods{

    @Test
    public void test1() throws InterruptedException {
        intTestClass object1;
        object1 = new intTestClass();
        object1.setInt();
    }

    @After
    public void tearDown() {
        System.out.println("testInt is: "+ testInt);
    }
}

И класс Methods:

public class Methods {

    public int testInt = 0;

    public void setInt() {
        testInt = 1;
    }

}

Здесь, когда вы запускаете тест JUnit вы ожидаете, что значение testInt будет напечатано как 1. Однако метод с аннотацией @After(@AfterMethod for testng) проверяет значение переменной testInt, которая относится к верхнему уровню intTestClass, а не чем intTestClass , который создается внутри метода test1().

Таким образом, мы видим вывод:

testInt is: 0

Если мы применим это к вашему сценарию, вам нужно будет переместить ваш метод launchBrowser() в ваш тестовый класс и вызвать метод с @BeforeClass аннотация.

0
ответ дан Koralp Catalsakal 21 January 2019 в 05:24
поделиться
Другие вопросы по тегам:

Похожие вопросы: