![](/img/trans.png)
[英]how to implement unittest.skip from python 3.1 in python 2.6?
[英]How to run test case marked `@unittest.skip` in Python?
假设以下测试套件:
# test_module.py
import unittest
class Tests(unittest.TestCase):
@unittest.skip
def test_1(self):
print("This should run only if explicitly asked to but not by default")
# assume many other test cases and methods with or without the skip marker
当通过python -m unittest
调用 unittest 库时,是否有任何参数可以传递给它实际运行而不是跳过Tests.test_1
而不修改测试代码并运行任何其他跳过的测试?
python -m unittest test_module.Tests.test_1
正确地选择它作为唯一要运行的测试,但它仍然跳过它。
如果不修改测试代码就没有办法做到这一点,我可以做的最惯用的更改是有条件地撤消@unittest.skip
并运行一个特定的测试用例测试用例吗?
在所有情况下,我仍然希望python -m unittest discover
(或任何其他未显式打开测试的调用)跳过测试。
如果你想跳过一些昂贵的测试,你可以使用条件跳过和自定义环境变量:
@skipIf(int(os.getenv('TEST_LEVEL', 0)) < 1)
def expensive_test(self):
...
然后你可以通过指定相应的环境变量来包含这个测试:
TEST_LEVEL=1 python -m unittest discover
TEST_LEVEL=1 python -m unittest test_module.Tests.test_1
如果你想跳过一个测试,因为你预计它会失败,你可以使用专用的expectedFailure
装饰器。
顺便说一下, pytest
有一个专门的装饰器来标记慢测试。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.