Size: a a a

testing_in_python

2021 February 04

V

Vikentsi in testing_in_python
Но самы верный путь быстрые тесты. Как говорил наш ведущий разраб. Если наши тесты будут выполнятся за 5 секунд. Да хоть на каждый коммит их буду ранать.
источник

SV

Sergei Vasilchenko in testing_in_python
Всем привет! Подскажите, пожалуйста, в модуле с тестами есть Фикстура, имеет scope=session, при запуске всех тестов фикстура подключается один раз за прогон . Вопрос, если фикстура в модуле с тестами имеет scope=module, то при запуске всех тестов она будет запускаться для каждого модуля или только для того где она лежит с тестами ? Важный момент-фикстура лежит рядом с тестами, не в conftest.py
источник

EB

Evgenii B in testing_in_python
Это значит как бы у тебя тесты не были собраны, на каждый python файл который использует эту фактуру, она вызовется один раз
источник

EB

Evgenii B in testing_in_python
Если в файле лежат отдельный тест-кейсы, выполнится до них и после них
источник

EB

Evgenii B in testing_in_python
Session
 Module
   Class Fixture (setup)
     Test case 1 in class
     Test
case 2 in class
        Class fixture (tear down)

   
Function  fixture (setup)
            Test_cass as function
        Function fixture (rear down)
   Module (tear down )
 Session (tear down)
источник

V

Vita in testing_in_python
Sergei Vasilchenko
Всем привет! Подскажите, пожалуйста, в модуле с тестами есть Фикстура, имеет scope=session, при запуске всех тестов фикстура подключается один раз за прогон . Вопрос, если фикстура в модуле с тестами имеет scope=module, то при запуске всех тестов она будет запускаться для каждого модуля или только для того где она лежит с тестами ? Важный момент-фикстура лежит рядом с тестами, не в conftest.py
вне этого файла с тестами фикстура не будет использоваться
источник

SV

Sergei Vasilchenko in testing_in_python
Vita
вне этого файла с тестами фикстура не будет использоваться
Если будет scope=module?
источник

V

Vita in testing_in_python
а ему без разницы
источник

EB

Evgenii B in testing_in_python
Evgenii B
Session
 Module
   Class Fixture (setup)
     Test case 1 in class
     Test
case 2 in class
        Class fixture (tear down)

   
Function  fixture (setup)
            Test_cass as function
        Function fixture (rear down)
   Module (tear down )
 Session (tear down)
Когда ты пишешь pytest tests/ в консоли

Pytest начнёт коллекционировать тесты, и выстраивать  иерархию (порядок запуска ) фиктур. На моменте анализа scope module вокруг каждого файла с тестами (если иначе не перепоеделено в конфиге) будут искаться импорты соседнего файла conftest
источник

V

Vita in testing_in_python
Ты должен всегда помнить, как работает интерпретатор, а потом ниже рангом идет pytest
источник

V

Vita in testing_in_python
pytest прочтет каждый тест как функцию, посмотрит в скобках каждого теста, а есть ли там фикстуры? если есть, то пойдет смотреть локально по файлу, а потом пойдет в conftest в папке с тестом, если там нет, то в общей папке с тестами, где также находится второй conftest
источник

V

Vita in testing_in_python
ну давай разбираться:
pytest.fixture(scope=module) в файле теста означает, что он выполнится в рамках файла
pytest.fixture(scope=module) в файле conftest выполнится в рамках файла каждого теста, который ее вызывает
pytest.fixture(scope=class) в файле с классом тестов выполнится в рамках этого файла
pytest.fixture(scope=class) в conftest выполнится в рамках каждого класса тестов, который ее вызывает
pytest,fixture(scope=session) в файле с тестами выполнится в течение сессии, как был запущен pytest. ее тесты должны вызывать в рамках теста
pytest.fixture(scope=session) в conftest вызовется в рамках сессии, в которой был запущен pytest, если тесты эту фикстуру вызвали
источник

АК

Александр Кот... in testing_in_python
Vita
ну давай разбираться:
pytest.fixture(scope=module) в файле теста означает, что он выполнится в рамках файла
pytest.fixture(scope=module) в файле conftest выполнится в рамках файла каждого теста, который ее вызывает
pytest.fixture(scope=class) в файле с классом тестов выполнится в рамках этого файла
pytest.fixture(scope=class) в conftest выполнится в рамках каждого класса тестов, который ее вызывает
pytest,fixture(scope=session) в файле с тестами выполнится в течение сессии, как был запущен pytest. ее тесты должны вызывать в рамках теста
pytest.fixture(scope=session) в conftest вызовется в рамках сессии, в которой был запущен pytest, если тесты эту фикстуру вызвали
> pytest.fixture(scope=module) в файле conftest выполнится в рамках файла каждого теста, который ее вызывает
* внутри того пакета в котором лежит этот conftest 😏
источник

V

Vita in testing_in_python
scope=function по умолчанию
источник

V

Vita in testing_in_python
а scope=module - это сумма def test..., в рамках одного файла с тестами
источник

SV

Sergei Vasilchenko in testing_in_python
Vita
ну давай разбираться:
pytest.fixture(scope=module) в файле теста означает, что он выполнится в рамках файла
pytest.fixture(scope=module) в файле conftest выполнится в рамках файла каждого теста, который ее вызывает
pytest.fixture(scope=class) в файле с классом тестов выполнится в рамках этого файла
pytest.fixture(scope=class) в conftest выполнится в рамках каждого класса тестов, который ее вызывает
pytest,fixture(scope=session) в файле с тестами выполнится в течение сессии, как был запущен pytest. ее тесты должны вызывать в рамках теста
pytest.fixture(scope=session) в conftest вызовется в рамках сессии, в которой был запущен pytest, если тесты эту фикстуру вызвали
всем спасибо за ответы)
источник
2021 February 05

BK

Boris Krutskih in testing_in_python
Всем привет, какую тулзу вы используете когда тесты доходят до того что нужно взаимодействовать с БД?
БД - MySQL, сейчас смотрю в сторону python mysql connector, может посоветуете ещё варианты?
источник

СС

Сказочный Сникерс... in testing_in_python
Boris Krutskih
Всем привет, какую тулзу вы используете когда тесты доходят до того что нужно взаимодействовать с БД?
БД - MySQL, сейчас смотрю в сторону python mysql connector, может посоветуете ещё варианты?
Sqlalchemy + pymysql
источник

BK

Boris Krutskih in testing_in_python
Не совсем понял зачем их использовать вместе, мне по сути нужно только в нужной таблице искать данные и извлекать данные из колонок. Разве не подойдёт чисто pymysql?
источник

А

Алексей in testing_in_python
Boris Krutskih
Не совсем понял зачем их использовать вместе, мне по сути нужно только в нужной таблице искать данные и извлекать данные из колонок. Разве не подойдёт чисто pymysql?
Подойдет. Просто в их проекте нужны оба
источник