将测试脚本导入django testrunner

时间:2016-03-21 22:14:23

标签: python django django-testing django-tests

我在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导入另一个测试套件?

1 个答案:

答案 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模块。