运行测试时导入两次

fal*_*ter 7 testing django import

我在tests.py中有这个代码:

from models import *
Run Code Online (Sandbox Code Playgroud)

在models.py我有一个信号处理程序并注册它

post_save.connect( post_save_note, sender=Note )
Run Code Online (Sandbox Code Playgroud)

当我运行测试时 ./manage.py test main

我发现信号处理程序已经注册了两次并执行了两次,我发现它是因为模型导入了两次.

我不能把from models import *测试代码?我该怎么办?

Van*_*ale 9

您需要确保始终以相同的方式导入模型.

例如,如果你有example1/tests.py:

from models import *
Run Code Online (Sandbox Code Playgroud)

在另一个包装中example2/views.py:

from example1.models import ModelA
Run Code Online (Sandbox Code Playgroud)

那么你将遇到你遇到的问题.解决方案是一致的,只使用其中一个.