我手头有个奇怪的问题。在
我正在创建一个django包,并希望为其提供一些测试用例。在
这个包名为ajax_forms,完整路径是PYTHONPATH的一部分。 该目录还包含一个tests目录(带有init.py文件)a测试.py文件(包含测试)和网址.py文件。在
现在我要做测试。在
ajax_forms父目录有一个在已安装的应用程序中使用ajax_表单的项目设置示例。在
但我似乎不能让测试运行:
>> ./manage.py test ajax_forms
Creating test database for alias 'default'...
----------------------------------------------------------------------
Ran 0 tests in 0.000s
OK
Destroying test database for alias 'default'...
没有找到测试,所以我试着更具体地说:
^{pr2}$甚至/管理.py阿贾克斯_表格.测试.测试.AjaxFormViewTest将找不到测试,并给出与上述相同的错误。在
但尝试从中导入测试用例/管理.py壳牌公司运作良好
In [2]: from ajax_forms.tests.tests import AjaxFormViewTest
我对这件事一无所知。在
您需要将
from tests import *
放入__init__.py
文件中Django将在你的应用程序中查找一个名为tests的包/模块,然后询问它的命名空间以查找测试用例。在本例中,它将查看测试包的名称空间(来自init.py文件),但没有发现任何内容。通过在
__init__.py
文件中进行导入,您将把测试用例从测试模块导入到测试包的名称空间中,django将能够找到它们并运行它们。在这个问题的另一个解决方案是使用更多的intelligent tests runner。您可以尝试
nose
和django_nose
-在这种情况下,它将发现测试。如果你不想安装其他应用程序,@Ctrlspc解决方案是解决这个问题的唯一方法。在您可以在应用程序中添加
models.py
文件,将新应用程序添加到已安装的应用程序中,django将找到测试.py文件,而不必向__init__.py
添加任何内容。在我想@Ctrlspc方法和这个方法都有点脏。所以任何选择都可以
相关问题 更多 >
编程相关推荐