【发布时间】:2014-07-19 09:44:20
【问题描述】:
我确实有一组使用 Python 的 unittest 模块编写的单元测试。他们正在使用 setUpModule() 函数加载一个全局变量,其中包含运行测试所需的共享“东西”(包括一些 HTTP 会话)。
使用unittest 运行我的测试时,它们运行良好。 py.test 他们失败了。
我对其进行了一些修补,使其使用旧的 pytest 固定功能(碰巧与 unittest 的名称不同)运行。它有效,但仅在未在多个线程上执行时才有效,这是我确实想使用的功能。
在我的案例中,文档示例毫无用处,因为我确实有 20 个类 (unittest.TestCase),每个类中有 10 个测试。显然我不想为每个测试添加一个新参数。
到目前为止,我使用类 setUp() 方法在 self 中加载共享字典,并在每个测试中从那里使用它。
#!/usr/bin/env python
# conftest.py
@pytest.fixture(scope="session")
def manager():
return { "a": "b"}
现在是测试:
#!/usr/bin/env python
# tests.py
class VersionTests(unittest.TestCase):
def setUp(self):
self.manager = manager
def test_create_version(self):
# do something with self.manager
pass
请记住,我需要一个可以与多个线程一起工作的解决方案,一次调用夹具。
【问题讨论】:
标签: python fixtures pytest python-unittest xdist