我最近将一个应用程序拆分为子目录.例如,我有一个"商店"应用程序,我把它分成shop/foo,商店/酒吧,商店/ baz子目录,将每一个视为一个单独的应用程序,所以我的INSTALLED_APPS现在看起来像:
"shop",
"shop.foo",
"shop.bar",
"shop.baz",
...
Run Code Online (Sandbox Code Playgroud)
我希望能够通过执行以下操作在shop/foo/tests.py中运行测试:
python manage.py test shop.foo
Run Code Online (Sandbox Code Playgroud)
但是,如果我这样做,我会收到错误:
ValueError: Test label 'shop.foo' does not refer to a test
Run Code Online (Sandbox Code Playgroud)
另一方面,我可以通过执行以下操作来运行测试:
python manage.py test foo
Run Code Online (Sandbox Code Playgroud)
为什么会发生这种情况,我可以改变什么,以便我可以将测试作为"shop.foo"而不是"foo"运行?
这是因为Django期望test命令的参数具有以下格式:
app_label[.TestCase[.test_method]]
Run Code Online (Sandbox Code Playgroud)
没有办法与股票测试运行员这样做(参见Carl Meyers评论).如果一切顺利的话,这应该是固定在Django 1.5,但在此期间,您可以使用它接受完整的模块路径备用亚军:Django的发现亚军.
| 归档时间: |
|
| 查看次数: |
1390 次 |
| 最近记录: |