У меня проблема с запуском наборов тестов. Я использую pytest для светильников и тестового заказа и unittests для запуска наборов. Все тестовые классы имеют параметр (unittest.TestCase)Python pytest unittest.TextTestRunner не запускает определенные пакеты
Файл, который я запускаю из того же каталога (папки/пакета), где находятся тесты. Я выполняю TestSuite с командой, pytest tests/test_suit.py
. Вот test_suit.py:
import unittest
from unittest import TextTestRunner
from unittest import TestLoader
from tests.home_page.login_test import LoginTest
from tests.cloud.cloud_test import CloudTest
tc1 = unittest.TestLoader().loadTestsFromTestCase(CloudTest)
tc2 = unittest.TestLoader().loadTestsFromTestCase(LoginTest)
smokeTest = unittest.TestSuite([tc1])
unittest.TextTestRunner(verbosity=2).run(smokeTest)
Проблема заключается в том, что выполняет все TestCases, даже если я ставлю только один. Похоже, он собирает все классы, где у меня есть аргумент (unittest.TestCase)
и не подбирает правильный TestSuite.
Не имеет значения, если я делаю smokeTest = unittest.TestSuite([tc1])
или smokeTest = unittest.TestSuite([tc2, tc1])
, он по-прежнему запускает все тестовые примеры.
Почему вы это делаете? Весь смысл использования таких инструментов, как py.test и нос, позволяет * их * собирать и запускать тесты. Вы должны * не * обязательно определять «TestSuite» вообще. Если вы хотите только запустить «LoginTest», вы можете указать это в командной строке или использовать декораторы для пропуска других тестов. – Bakuriu
Ну, у меня есть куча тестов, таких как дым, функциональность, регрессия, и у всех есть свои наборы тестов. – olia
Итак? Если вы хотите запустить тесты дыма, используйте 'pytest tests/test_smoke.py' или' pytest tests/smoke_tests', если это каталог. Если вы правильно группируете свои тесты в файлах/каталогах, вам не нужно ничего делать, чтобы собирать тесты для запуска, вы просто указываете каталог/файл. – Bakuriu