2012-08-01 94 views
1

pytest_addoption我有以下的测试目录结构,每个人都有自己的conftest.py:py.test在相同的目录结构不能有相同的选项名称

tests/api 
    tests/api/newapi 
    tests/sanity 

在conftest.py,pytest_addoption具有相同的选项进入作为test_option:

parser.addoption( “ - test_option”,DEST = “test_option”,类型= “字符串”,帮助= “test_option”)

在测试/ API/newapi执行py.test具有以下错误:

optparse.OptionConflictError:选项--test_option:冲突的选项字符串(S):--test_option

但执行py.test在测试/ API或测试或测试/神智正常工作。 这是否是由设计,如果父目录具有相同的选项名称,我必须拿出一个新的选项名​​称?

我一直希望能够保持命名约定相同,因为相关选项为测试提供相同的目的。目的是根据测试从哪个目录启动而改变测试的详细程度。

+0

**注意**:从python版本2.7开始,不鼓励使用* optparse *。 optparse模块已弃用,不会进一步开发;开发将继续使用* argparse *模块。有关更多信息,请参见[PEP 0389](http://www.python.org/dev/peps/pep-0389/)。 – shakaran 2013-04-03 23:56:40

回答

1

我认为你应该有一个tests/conftest.py,它通过pytest_addoption定义了这个选项,并且你可以从任何地方访问它,因为所有的conftest.py文件都被考虑了(所以你可能仍然在tests/newapi/conftest.py并使用选项值)。

+0

非常感谢您的回复。它工作得很好。我将所有常用选项放在tests/conftest.py pytest_addoption中,并将它们从每个测试的conftest.py中删除,现在我可以从上面列出的任何目录运行测试并包括测试。 – 2012-08-07 23:40:49

相关问题