我正在使用nose进行测试。我知道如何跳过测试,但我想知道是否有一个简单的解决方案,在某些模块没有导入的情况下,编写一个decorator来跳过测试。在
现在我尝试导入mock并捕获ImportError
,如果它没有安装并设置mock = None
。在需要mock的测试开始时,我使用if not mock: raise SkipTest()
作为第一行。在
那很好用。我只是想知道有没有可能和装修师一起?在
我使用kindall's answer已经有一段时间了,只是为了今天注意到,它仍然不能正常工作(至少在所有的情况下都是如此!
当我使用一个测试函数时,它似乎可以工作,不是生成器(不包含yield
语句)。每当我在使用yield
的测试函数上使用decorator时,无论生成的函数中的assert
失败,测试都会通过。在
你知道为什么会发生这种情况,以及如何防止这种行为吗?在
在kindall的回答(有效)的启发下,我试图让它在没有
functools
的情况下工作:似乎也管用。
__name__
这一点很重要,因此{a1}可以识别该函数,并在详细的测试运行中相应地标记它。在我希望我没有错过什么?对你的测试失去信心是件可悲的事
装饰工应该是这样的:
当
mock
为None
时,这将使测试通过。您也可以尝试提升SkipTest()
,但这可能会干扰装饰器。在这样的东西不管用吗?在
相关问题 更多 >
编程相关推荐