我正在编写一组测试用例,在测试模块中说Test1,Test2。
有没有办法跳过Test1或使用命令nose.main()选择性地只执行该模块中的Test2?
我的模块包含,
test_module.py,
class Test1:
setUp(self):
print('setup')
tearDown(self):
print('teardown')
test(self):
print('test1')
class Test2:
setUp(self):
print('setup')
tearDown(self):
print('teardown')
test(self):
print('test2')
我使用
从不同的python文件运行它if __name__ == '__main__':
nose.main('test_module')
答案 0 :(得分:2)
跳过测试而未运行测试的概念在鼻子的上下文中是不同的:跳过的测试将在测试结果的末尾报告为跳过。如果你想跳过测试,你必须使用装饰器修补你的测试模块,或做一些其他的黑暗魔法。
但是如果你想不运行测试,你可以像在命令行中那样执行它:使用--exclude 选项。它需要正常表达您不想运行的测试。像这样:
import sys
import nose
def test_number_one():
pass
def test_number_two():
pass
if __name__ == '__main__':
module_name = sys.modules[__name__].__file__
nose.main(argv=[sys.argv[0],
module_name,
'--exclude=two',
'-v'
])
运行测试会给你:
$ python stackoverflow.py
stackoverflow.test_number_one ... ok
----------------------------------------------------------------------
Ran 1 test in 0.002s
OK