Как собрать тесты с сьюту помогите советом

pytest
webdriver
python
Теги: #<Tag:0x00007fedb7a33b10> #<Tag:0x00007fedb7a338b8> #<Tag:0x00007fedb7a32dc8>

(Назар) #1

есть тест:

_001_add_new_user_test.py

def test_001(web_driver):
   message = "користувач вже існує"

   get_url(BASE_URL)

   main_page = MainPage()
   main_page.goto_register_page()

  register_page = RegisterPage()
  user = User("user_for_register")
  register_page.fill_register_form(user)
  register_page.submit()

  assert message in page_url()

и подобные хочу загнать в сьюту в новом модуле suite_test.py

from conftest import web_driver
from tests.registration_tests._001_add_new_user_test import test_001

test_001(web_driver)

но в таком случае вот ета фикстура из conftest.py не подтягивается

@pytest.fixture(scope="function")
def web_driver(request, get_brows):
    name = request.module.__name__[0:-5]
    log().info("=============== " + name + " STARTED ==================")

   WebDriverFactory.set_driver(get_brows)
   yield web_driver
   WebDriverFactory.kill_driver()
   log().info("=============== " + name + " FINISHED ==================")
   return web_driver

как должно быть правильно,а то привык к иксемельке тестенджишной…


(Mykhailo Poliarush) #2

В #pytest используется механизм запуска через маркеры, названия и групирования пакетов, соответсвенно по ним и запускаются нужные тесты

http://docs.pytest.org/en/latest/mark.html

http://docs.pytest.org/en/latest/usage.html#specifying-tests-selecting-tests

pytest test_mod.py   # run tests in module
pytest somepath      # run all tests below somepath
pytest -k stringexpr # only run tests with names that match the
                      # "string expression", e.g. "MyClass and not method"
                      # will select TestMyClass.test_something
                      # but not TestMyClass.test_method_simple
pytest test_mod.py::test_func  # only run tests that match the "node ID",
                                # e.g "test_mod.py::test_func" will select
                                # only test_func in test_mod.py
pytest test_mod.py::TestClass::test_method  # run a single method in
                                             # a single class

В вашем случае, я не уверен, что вы правильно запускаете, точнее оно то запуститься, но не уверен что pytest запускает правильно все внутренние механизмы