我手头有一个奇怪的问题.
我正在创建一个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将能够找到它们并运行它们.