我的 django 应用程序中有几个 TestCase 类。在其中一些上,我模拟了一个通过使用@mock.patch 装饰类来调用外部资源的函数,效果很好。我的测试套件中的一个TestCase,我们称之为B(),依赖于那个外部资源,所以我不希望它被模拟出来,我也不添加装饰器。它看起来像这样:
@mock.patch("myapp.external_resource_function", new=mock.MagicMock)
class A(TestCase):
# tests here
class B(TestBase):
# tests here which depend on external_resource_function
当我独立测试 B 时,事情按预期工作。但是,当我同时运行两个测试时,A 首先运行,但该函数仍然在 B 中模拟出来。我怎样才能取消模拟该调用?我试过重新加载模块,但没有帮助。