Bru*_*tus 3 python unit-testing nose
我正在用鼻子进行测试.我知道如何跳过测试,但我想知道是否有一个简单的解决方案来编写装饰器以跳过测试,当某些模块未导入时.
现在我尝试导入mock并捕获ImportError它是否未安装和设置mock = None.在需要模拟的测试开始时,我将其if not mock: raise SkipTest()用作第一行.
这没关系.我只是想知道它是否也可以用装饰器?
一段时间以来,我一直在使用kindall的答案,只是为了注意它,它仍然无法正常工作(至少在所有情况下都不行!
当我使用测试函数时,它似乎工作,它不是一个生成器(不包含yield语句).每当我在使用的测试函数上使用装饰器时yield,无论是否assert在屈服函数中失败,测试都会通过.
任何想法为什么会发生这种情况以及如何防止这种行为?
不会像这样的工作吗?
import functools
def requires_mock(test):
@functools.wraps(test)
def wrapper():
if mock:
return test()
raise SkipTest
return wrapper
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2855 次 |
| 最近记录: |