python – 找不到Django Package测试

我手头有一个奇怪的问题.

我正在创建一个django包,并希望为它提供一些测试用例.

该包名为ajax_forms,完整路径是我的PYTHONPATH的一部分.
该目录还包含一个tests目录(带有__init__.py文件),一个tests.py文件(包含测试)和一个urls.py文件.

现在我想运行测试.

ajax_forms父目录的示例项目设置为INSTALLED_APPS中的ajax_forms.

但我似乎无法让测试运行:

 >> ./manage.py test ajax_forms
Creating test database for alias 'default'...

----------------------------------------------------------------------
Ran 0 tests in 0.000s

OK
Destroying test database for alias 'default'...

没有找到测试,所以我尝试更具体:

 >> ./manage.py test ajax_forms.tests
....
raise ValueError("Test label '%s' does not refer to a test" % label)
ValueError: Test label 'ajax_forms.tests' does not refer to a test
(ajax-validation)

即使./manage.py ajax_forms.tests.tests.AjaxFormViewTest也不会找到测试并给出与上面相同的错误.

但是尝试从./manage.py shell导入测试用例可以正常工作

In [2]: from ajax_forms.tests.tests import AjaxFormViewTest

关于发生了什么,我在这里一点也不知道.

最佳答案 您需要在__init__.py文件中输入test *

Django将在您的应用程序中查找名为tests的包/模块,然后查询其命名空间以查找测试用例.在这种情况下,它将查看测试包的命名空间(来自init.py文件),并在那里找不到任何内容.通过在__init__.py文件中导入,然后您将测试模块中的测试用例导入到测试包的命名空间中,并且django将能够找到它们并运行它们.

点赞