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

标签 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)

问题是,它会执行所有的测试用例,即使我只放了一个。看起来它收集了我有参数 (unittest.TestCase) 并且没有选择正确的 TestSuite 的所有类。

无论我执行 smokeTest = unittest.TestSuite([tc1]) 还是 smokeTest = unittest.TestSuite([tc2, tc1]),它仍然运行所有测试用例。

最佳答案

这是我的非答案。检查了pytest documentation并找到类似(添加了重点)的段落,

Note that this is meant as a provisional way of running your test code until you fully convert to pytest-style tests. To fully take advantage of fixtures, parametrization and hooks you should convert (tools like unittest2pytest are helpful). Also, not all 3rd party pluging are expected to work best with unittest.TestCase style tests.

您是否合理期望您应该能够在单元测试样式的测试运行器上调用 pytest?

查看pytest's own test for unittest compatibility , 以及他们的 unittest.py module本身,我看不到单元测试风格的测试套件的支持或验证,你的 test_suite.py 依赖它,它构成了这个问题的基础。我只看到对他们所支持的文件的支持,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

关于Python pytest unittest.TextTestRunner 不运行特定套件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42234836/

相关文章:

python - 如何在运行单元测试时摆脱第三方库警告?

python - 如何将 1 pytest.mark 内容的内容复制到另一个

python - 无法在 Django 中导入设置

python - 如何捕获 Python Unittest 测试用例失败的屏幕截图

python - 找不到lpython2.7

python - 如何手动将包安装到 anaconda 的 python 发行版中?

python - 如何反转具有重复值的字典

python - 使用由另一个类中的 namespace 设置的同一类中的变量python

python - 在Python中将一个字符串拆分为多个字符串

import - 更改 pytest 根目录