应用具有测试目录时,在Django中运行特定的测试用例

Django文档(http://docs.djangoproject.com/zh-CN/1.3/topics/testing/#running-tests)指出,你可以通过指定单个测试用例来运行它们:

$ ./manage.py test animals.AnimalTestCase

假设你将测试保存在Django应用程序的tests.py文件中。如果是这样,那么此命令将按预期工作。

我在tests目录中有针对Django应用程序的测试:

my_project/apps/my_app/

├── __init__.py

├── tests

│ ├── __init__.py

│ ├── field_tests.py

│ ├── storage_tests.py

├── urls.py

├── utils.py

└── views.py

tests/__init__.py文件具有suite()函数:

import unittest

from my_project.apps.my_app.tests import field_tests, storage_tests

def suite():

tests_loader = unittest.TestLoader().loadTestsFromModule

test_suites = []

test_suites.append(tests_loader(field_tests))

test_suites.append(tests_loader(storage_tests))

return unittest.TestSuite(test_suites)

要运行测试,我要做的是:

$ ./manage.py test my_app

尝试指定单个测试用例会引发异常:

$ ./manage.py test my_app.tests.storage_tests.StorageTestCase

...

ValueError: Test label 'my_app.tests.storage_tests.StorageTestCase' should be of the form app.TestCase or app.TestCase.test_method

我试图做异常消息说:

$ ./manage.py test my_app.StorageTestCase

...

ValueError: Test label 'my_app.StorageTestCase' does not refer to a test

当我的测试位于多个文件中时,如何指定单个测试用例?

回答:

结帐django-nose。它允许你指定测试运行方式:

python manage.py test another.test:TestCase.test_method

或如注释中所述,使用以下语法:

python manage.py test another.test.TestCase.test_method

以上是 应用具有测试目录时,在Django中运行特定的测试用例 的全部内容, 来源链接: utcz.com/qa/412726.html

回到顶部