我在django包中有一个测试运行器,它分为两个目录,如下所示:
package/models.py
package/tests/__init__.py
package/tests/test_foo.py
package/contrib/bar/models.py
package/contrib/bar/tests/__init__.py
package/contrib/bar/tests/test_bar.py
在package/tests/__init__.py
我有这个:
from package.contrib.tests import test_bar
并且可以正常运行:
./manage.py test package.tests.test_bar
但是,如果我运行其中任何一个:
./manage.py test package
./manage.py test package.tests
test_bar
没有运行。
我通过编写一个始终失败的测试来证实这一点,并且当使用上述任一调用运行时,测试都能正常工作。
有没有办法将test_suite导入另一个测试套件?
答案 0 :(得分:2)
使用
从contrib
包运行测试
$ ./manage.py test package.tests
您必须在*
包裹tests
中的contrib测试中导入__init__.py
。
像这样:
from package.contrib.tests.tests_bar import *
from .test_foo import *
即使您将contrib
作为CLI参数传递,也会运行所有package.tests
测试。
但您无法指定仅contrib.test_bar
作为package.tests.test_bar
运行。要做到这一点,只需在test_bar
文件中导入__init__.py
模块。