我在運行測試套件時遇到了問題。 我正在使用pytest for fixtures和測試訂購和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)
的問題是,它執行的TestCase一切,即使我把只有一個。看起來像它收集所有類,我有論點(unittest.TestCase)
,並沒有拿起正確的TestSuite。
不要緊,如果我做smokeTest = unittest.TestSuite([tc1])
或smokeTest = unittest.TestSuite([tc2, tc1])
,它仍然運行所有的TestCases。
你爲什麼要這麼做?使用py.test和nose等工具的重點是讓它們收集並運行測試。你應該*不需要定義'TestSuite'。如果你只想運行'LoginTest',你可以在命令行上指定,或使用提供的修飾器來跳過其他測試。 – Bakuriu
好吧,我有一堆測試套件,如煙霧,功能,迴歸,都有自己的一套測試用例。 – olia
那麼?如果你想運行煙霧測試,使用'pytest tests/test_smoke.py',或者'pytest tests/smoke_tests',如果它是一個目錄。如果您將測試正確地分組到文件/目錄中,則不必對收集要運行的測試執行任何操作,只需指定目錄/文件即可。 – Bakuriu