我正在 Django 中编写一个身份验证后端来只记录几个用户。
它位于我的 Django 项目的根目录中的一个名为 restrictedauthentification/ 的文件夹中。(我是为一个特定的项目写下来的。)它有两个文件:backend.py
和tests.py
在最后一个文件中,我为它写了一些测试。但我无法使用命令./manage.py
test 运行它们,因为它不是已安装的应用程序。
有什么想法可以运行它们吗?
好的,我找到了一个解决方案,让我无法将后端变成模块。
我不明白的东西可以帮助一些初学者:在 python 中,测试不能自行运行。它需要由 TestRunner 执行。
现在,可以使用TextTestRunner
捆绑的 python 来执行测试并在标准输出上显示结果,但是当使用 django 进行测试时,需要在测试前后做一件事:调用函数setup_test_environment()
和teardown_test_environment()
.
所以我刚刚创建了一个继承TextTestRunner
并重新定义它的方法的类,run()
以便它执行 Django 提供的两个函数。
这里是 :
from restrictedauthentification.tests import TestRestrictedAuthentification
from django.test.utils import setup_test_environment, teardown_test_environment
from unittest import TextTestRunner
class DeadSimpleDjangoTestRunner(TextTestRunner):
def run(self, test):
setup_test_environment()
super().run(test)
teardown_test_environment()