Python pytest unittest.TextTestRunner不运行特定的套件

时间:2017-02-14 19:42:30

标签: python pytest

我在运行测试套件时遇到问题。 我正在使用pytest进行夹具和测试订购以及用于运行套件的单元测试。所有测试类都有参数(unittest.TestCase)

我在同一个目录(文件夹/包)中执行的文件。我用命令pytest tests/test_suit.py执行TestSuite。这是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。

1 个答案:

答案 0 :(得分: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 ===========================

python / unittest执行更正

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

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

OK