我正在使用跳过装饰器进行测试:
@skip('I want this to skip')
def test_abc(self):
我还有一个鼻子插件来报告带有定义
的测试结果def beforeTest(self, *args, **kwargs):
test_abc
方法正在捕获测试用例beforeTest
。如何在beforeTest
方法中检查装饰器值?
我看到unittest装饰器的定义有以下代码:
test_item.__unittest_skip__ = True
test_item.__unittest_skip_why__ = reason
但我不知道如何从beforeTest
访问它。
运行args[0].test
时有测试用例对象,但我似乎可以找到定义__unittest_skip__
的位置
谢谢!
答案 0 :(得分:1)
查看源代码,似乎没有 clean 方法来执行此操作。 TestCase
似乎知道它根据_testMethodName
实现细节测试的方法。如果你有对正在运行的测试用例的引用(可能args[0].test
?我不熟悉nose
...)你可以使用它,或者你可以解析它超出TestCase.id()
的返回值。假设你没有做一些非常时髦的事情,那就像是:
test_name = test_case.id().rsplit('.', 1)[-1]
test_method = getattr(test_case, test_name)
if getattr(test_method, '__unittest_skip__', False):
# Method skipped. Don't do normal stuff.