2017-02-14 31 views
2

我在運行測試套件時遇到了問題。 我正在使用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。

+0

你爲什麼要這麼做?使用py.test和nose等工具的重點是讓它們收集並運行測試。你應該*不需要定義'TestSuite'。如果你只想運行'LoginTest',你可以在命令行上指定,或使用提供的修飾器來跳過其他測試。 – Bakuriu

+0

好吧,我有一堆測試套件,如煙霧,功能,迴歸,都有自己的一套測試用例。 – olia

+0

那麼?如果你想運行煙霧測試,使用'pytest tests/test_smoke.py',或者'pytest tests/smoke_tests',如果它是一個目錄。如果您將測試正確地分組到文件/目錄中,則不必對收集要運行的測試執行任何操作,只需指定目錄/文件即可。 – Bakuriu

回答

0

這是我的無答案。檢查過pytest documentation,發現像段(強調),

注意,這意味着作爲運行測試代碼 臨時方法,直到你完全轉換到 pytest式測試。要充分利用 的燈具,參數化和鉤子你應該轉換(像 unittest2pytest工具是有幫助的)。另外,並非所有的第三方插件都是 ,預計它們可以與unittest.TestCase樣式測試結合使用。

你是否有一個合理的期望,你應該可以在單元測試樣式測試運行器上調用pytest?

看着pytest's own test for unittest compatibility和他們的unittest.py module本身,我看不到支持或驗證test_suite.py所依賴的單元測試樣式TestSuite,以及哪些構成了此問題的基礎。我只看到他們支持的文件支持,unittest.TestCase。

pytest做的錯誤事情

so zyoung$ pytest tests/test_suit.py 
============================= test session starts ============================== 
platform darwin -- Python 2.7.13, pytest-3.0.6, py-1.4.32, pluggy-0.4.0 
rootdir: /Users/zyoung/so, inifile: 
collected 2 items 

tests/test_suit.py .. 

=========================== 2 passed in 0.02 seconds =========================== 

蟒蛇/單元測試是否正確事情

so zyoung$ python tests/test_suit.py 
test (cloud.cloud_test.CloudTest) ... ok 

---------------------------------------------------------------------- 
Ran 1 test in 0.000s 

OK 
相關問題