gpt4 book ai didi

python - 当您的应用程序具有测试目录时,在 Django 中运行特定的测试用例

转载 作者:IT老高 更新时间:2023-10-28 12:29:18 24 4
gpt4 key购买 nike

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

$ ./manage.py test animals.AnimalTestCase

这假设您在 Django 应用程序的 tests.py 文件中进行了测试。如果这是真的,那么这个命令就像预期的那样工作。

我在测试目录中有一个 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 1.6 开始,您可以使用要运行的元素的完整点符号来运行完整的测试用例或单个测试。

自动测试发现现在将在工作目录下以 test 开头的任何文件中查找测试,因此解决您必须重命名文件的问题,但您现在可以将它们保留在目录中你要。如果要使用自定义文件名,可以使用选项标志 --pattern="my_pattern_*.py" 指定模式(默认 Django 测试运行器) .

所以如果你在你的manage.py目录并想运行测试test_a里面 TestCase子类 A在文件中 tests.py在应用程序/模块下example你会这样做:

python manage.py test example.tests.A.test_a

如果您不想包含依赖项并且在 Django 1.6 或更高版本中,那么您就是这样做的。

See the Django documentation for more information

关于python - 当您的应用程序具有测试目录时,在 Django 中运行特定的测试用例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5875111/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com