使用@ mock.patch.object函数时,我发现了一个非常奇怪的nose测试行为:
当我同时运行多个测试时,我得到的结果与单独运行时的结果不同。具体来说,碰巧使用@ mock.patch.object的覆盖似乎没有任何效果,在某些情况下,当我一起运行多个nosetests时。当我使用with
应用补丁时,不会发生此问题。
@patch.object(ObjectToOverride,....)
def test_mytest()
# check the override
使用with
方法应用补丁时,后续测试不受先前测试的影响。
def test_mytest()
with patch.object(ObjectToOverride,....):
# check the override
任何可能导致此行为的建议都值得赞赏。
当我运行多个测试时,ObjectToOverride将被先前的测试加载和使用。但是我不明白为什么使用with或decorator会在之后是否仍然可以修补对象。
在这两种情况下,我都可以观察到测试之间的一些干扰。如何在鼻子测试中避免这种情况?
答案 0 :(得分:2)
问题似乎已经与导致错误的测试相关联。之后补丁没有正确拆除。