3
使用funcargs我包括conftetst.py我自己的命令行选项pytest - 内setup_module
def pytest_addoption(parser):
parser.addoption("--backend" , default="test_backend",
help="run testx for the given backend, default: test_backend")
和
def pytest_generate_tests(metafunc):
if 'backend' in metafunc.funcargnames:
if metafunc.config.option.backend:
backend = metafunc.config.option.backend
backend = backend.split(',')
backend = map(lambda x: string.lower(x), backend)
metafunc.parametrize("backend", backend)
如果我使用一个模块内部的正常功能这里面的命令行选项:
module: test_this.py;
def test_me(backend):
print backend
它按预期工作。
现在我想包括setup_module功能的一些测试之前创建/复制一些东西:
def setup_module(backend):
import shutil
shutil.copy(backend, 'use_here')
...
不幸的是我现在已经知道怎么去访问setup_module函数内部此命令行选项。 没有用,我尝试过。
感谢您的帮助,建议。
干杯
我有这个轻微的扭曲,并找不到解决方案的用例:我想要在模块设置上调用后端特定的init方法,然后运行该后端的所有测试,调用拆卸方法并继续下一个后端。换句话说,我需要在模块上运行参数化而不是测试基础。这可以做到吗? – kynan 2012-07-20 18:22:06
我刚刚更新了一些示例,希望它有帮助:http://pytest.org/dev/example/parametrize.html#grouping-test-execution-by-parameter – hpk42 2012-07-23 08:54:12
这里是我对http:// pytest的投票.org/latest/resources.html#using-funcarg-resources-in-xunit-setup-methods。我只需要一个包含合成数据的文件即可生成一次,然后在所有测试中使用。 – Tobu 2012-10-12 09:58:39