我的setup.py TestCommand看起来像这样:
class PyTest(TestCommand):
def finalize_options(self):
TestCommand.finalize_options(self)
self.test_args = ['-v','-m "not luna"']
self.test_suite = True
def run_tests(self):
#import here, cause outside the eggs aren't loaded
import pytest
errno = pytest.main(self.test_args)
sys.exit(errno)
我的问题在于test.args
行。
我在setup.py中使用py.test的第一个概念验证设置有以下参数:
['-v', '-k DivHour']
只执行名称中包含字符串DivHour
的测试,并且通过python setup.py test
调用时,该工作正常。
现在我想运行所有可用的测试,除了标有@pytest.mark.luna
标记的测试之外
标记本身工作正常,当我使用`py.test -v -m“而不是luna”运行测试时成功执行确认。
但是,上面的语法没有使用setup.py机制获取,py.test在这种情况下也会尝试执行标记的测试。
我还尝试使用"
转义\
,如此:
['-v', '-m \"not luna\"']
但也无济于事。 谁知道我怎么能做到这一点?
答案 0 :(得分:2)
您需要单独传递每个参数:
self.test_args = ['-v', '-m', 'not luna']