Может у вас проблема в том, что вы запускаете 1 тест в 2 потока, он и срабатывает 2 раза последовательно.
Хотя я для теста запустил один тест в 2 потока, сработал 1 раз в 1 поток )
Попробуйте запустить 2 теста.
Да, я пытаюсь запустить 1 тест в 2 потока, ожидая что у меня запустится два инстанса браузера. Т.е. например запустить 1 тест сразу на нескольких браузерах.
Пока я пытаюсь делать все на FireFox, предполагая, что запустится 2 инстанса FF.
Нет, так 2 инстанса не запустится. Для разных браузеров скорее надо ковырять Selenium Grid. В данной ситуации попробуйте сделать еще один простенький тест и запустить в 2 потока. Должно работать.
Таки да. Запустилось 2 теста, не совсем одновременно, но все же не по очереди:)
Спасибо большое.
Я все же надеялся, что это решит проблему с запуском теста сразу на нескольких браузерах.
У Вас нет случайно предположений, как это можно сделать?
например нельзя ли как-то сделать так, чтобы например такой командой запускать тест
py.test -n2 test1.py platform = WINDOWS, browser = CHROME, FIREFOX, SAFARI, IE – 1 команда
py.test -n2 test1.py platform = MAC, browser = CHROME, FIREFOX, SAFARI - 2 команда
затем создать две джобы в дженкинсе, чтобы каждая запускала тест на 1 платформе для нескольких браузеров:)
И тут на сцену выходит отказ от unittest.TestCase (вообще не вижу причин вам его использовать, он накладывает некоторые ограничения на функционал pytest), и использование фикстур/параметризации тестов. Много-много чтива на этот счёт, например, здесь Parametrizing tests — pytest documentation
Я вам не могу привести простой пример своего когда из-за очень брутального взаимосвязанного огорода Но на пальцах, я использую параметризованную фикстуру driver, и тесты выглядят так
def test_something(driver):
driver.get(myurl)
# lot's of code here
всё, что делается в ваших сетап и тиардаун методах спрятано как раз в driver. Ну и запускаю тесты с нужными параметрами командной строки (в том числе браузеры и платформы)