0

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

4

1 回答 1

2

为了从contrib包中运行测试,使用

$ ./manage.py test package.tests

您必须从包的*.contrib 测试中导入。tests__init__.py

像这样:

from package.contrib.tests.tests_bar import *
from .test_foo import *

contrib即使您package.tests作为 CLI 参数传递,这也会运行所有测试。

但是您将无法指定仅contrib.test_bar作为package.tests.test_bar. 为此,只需test_bar__init__.py文件中导入模块即可。

于 2016-03-23T07:30:02.453 回答