Size: a a a

testing_in_python

2021 August 20

A

Andrey in testing_in_python
если я правильно понял, нужно было сделать так:
@pytest.mark.usefixtures('driver', 'config2')
class BasePage:

   def __init__(self, driver):
       self.driver = driver

   def do_click(self, by_locator):
       WebDriverWait(self.driver, 10).until(ec.visibility_of_element_located(by_locator)).click()



class BrowserPageCase2(BasePage):

   CLICK_4_JS_ALERT = (By.XPATH, '//button [text()="Click for JS Alert"]')

   def __init__(self, driver):
       super().__init__(driver)

   def click_alert(self):
       self.do_click(BrowserPageCase2.CLICK_4_JS_ALERT)
...


и в самом тестовом файле код такой:
@pytest.mark.usefixtures('driver')
def test_case_2_alerts(self, driver):
   case_2 = BrowserPageCase2
   case_2.link_case_2(driver, config)
   case_2.click_alert(self)
источник

СС

Сказочный Сникерс... in testing_in_python
А инит в наследнике зачем?
источник

СС

Сказочный Сникерс... in testing_in_python
Да и способ проставить в пейджу драйвер и конфиг через классметод тож странный.
источник

СС

Сказочный Сникерс... in testing_in_python
И ожидание в do_click может развалиться. Нужно ждать кликабельности а не видимости
источник

СС

Сказочный Сникерс... in testing_in_python
А, этот метод урл дергает. А где тогда инстанс пейджы с переданным драйвером? И зачем в link_case передавать драйвер когда он уже будет в пейдже
источник
2021 August 21

ДЛ

Дмитрий Лупачев... in testing_in_python
Прости за настойчивость) Просто хочется понять, как сделать "нормально".
источник

А

Алексей in testing_in_python
Выходные 😂😂😂
источник

АХ

Андрей Хахин... in testing_in_python
у тебя скрин просто шага после shell скрипта или это post action билда?
источник

А

Алексей in testing_in_python
Шаг после шелл скрипта как мо поняли.
источник

ДЛ

Дмитрий Лупачев... in testing_in_python
так проще
источник

АХ

Андрей Хахин... in testing_in_python
allure мы не юзаем, но выглядит правильно, у тебя по идее билд должен быть красным, но отчет если есть из чего, должен формироваться
источник

ДЛ

Дмитрий Лупачев... in testing_in_python
Если я правильно понимаю:
Тут не в аллюре дело, если даже это какой-нибудь --junitxml=reports/result.xml, и при хотя бы одном тесте, который не прошел - контейнер фейлится (соответственно никаких каталогов с results.xml не появится) и на послесборке просто не с чем работать.
источник

ДЛ

Дмитрий Лупачев... in testing_in_python
Просто я не знаю как сделать иначе, чтобы запускать тесты в докере
источник

АХ

Андрей Хахин... in testing_in_python
типо проблема в том что у тебя резалты не формируются при фейле хотя бы одного теста?
источник

ДЛ

Дмитрий Лупачев... in testing_in_python
да
источник

ДЛ

Дмитрий Лупачев... in testing_in_python
поэтому и пришлось костылить, чтобы контейнер не падал, если code не 0
источник

АХ

Андрей Хахин... in testing_in_python
чет какие то не особо связанные вещи, то что Pytest после запуска тестов возвращает 1 при наличии зайфеленных тестов это нормально
источник

ДЛ

Дмитрий Лупачев... in testing_in_python
Вот поэтому я и задал вопрос, как обойти вот это, либо переделать так, чтобы работало "правильно"
источник

АХ

Андрей Хахин... in testing_in_python
судя по твоему коду, тебе надо больше свободы, переписал бы ты это на pipeline, обычный или декларативный. Тебе надо стартануть контейнер, а потом в post action или try/finally сделать нужные действия. просто freestyle тебе просто это не даст сделать, там набор действий ограничен. Или в freestyle заменить код выхода из docker run
источник

АХ

Андрей Хахин... in testing_in_python
допиши в конце docker run
2>/dev/null || exit 0
источник