我在test目录中对Django应用程序进行了测试:
my_project/apps/my_app/
├── __init__.py
├── tests
│ ├── __init__.py
│ ├── field_tests.py
│ └── storage_tests.py
├── urls.py
├── utils.py
└── views.pyDjango test runner要求我在应用程序的测试目录的__init__.py文件中放置一个suite()函数。该函数返回将在执行$ python manage.py测试时运行的测试用例
我安装了django-nose当我尝试使用django-nose运行测试时,运行了0个测试:
$ python manage.py test <app_name>如果我直接指向测试模块,则运行测试:
$ python manage.py test my_project.apps.my_app.tests.storage_tests为什么django-nose的测试运行程序找不到我的测试?我必须做什么?
发布于 2012-02-23 17:25:34
如果你使用django-nose,你可以使用一个简单的选择器:
from nose.selector import Selector
from nose.plugins import Plugin
import os
import django.test
class TestDiscoverySelector(Selector):
def wantDirectory(self, dirname):
parts = dirname.split(os.path.sep)
return 'my_app' in parts
def wantClass(self, cls):
return issubclass(cls, django.test.TestCase)
def wantFile(self, filename):
parts = filename.split(os.path.sep)
return 'test' in parts and filename.endswith('.py')
def wantModule(self, module):
parts = module.__name__.split('.')
return 'test' in parts
class TestDiscoveryPlugin(Plugin):
enabled = True
def configure(self, options, conf):
pass
def prepareTestLoader(self, loader):
loader.selector = TestDiscoverySelector(loader.config)这只是一个示例实现,您可以使其更具可配置性,也可以根据需要进行调整。要在Django项目中使用它,只需在settigs.py中提供以下选项
NOSE_PLUGINS = ['lorepo.utility.noseplugins.TestDiscoveryPlugin']发布于 2012-05-29 22:13:31
错误:
python manage.py test my_app.tests.storage_tests:TestCase.test_name实际上是使用斜杠,直到类名和文件的扩展名
右图:
python manage.py test my_app/tests/storage_tests.py:TestCase.test_name发布于 2017-02-03 20:11:46
如果您在模块的开头添加测试= True,并且您的方法以test_开头,则nose将自动拾取
查看nose如何检测测试http://nose.readthedocs.io/en/latest/finding_tests.html
https://stackoverflow.com/questions/6065151
复制相似问题