gpt4 book ai didi

python - 我如何告诉 django-nose 我的测试在哪里?

转载 作者:太空狗 更新时间:2023-10-29 17:08:24 24 4
gpt4 key购买 nike

我在测试目录中对 Django 应用程序进行了测试:

my_project/apps/my_app/
├── __init__.py
├── tests
│ ├── __init__.py
│ ├── field_tests.py
│ └── storage_tests.py
├── urls.py
├── utils.py
└── views.py

Django 测试运行程序要求我将 suite() 函数放入应用程序测试目录的 __init__.py 文件中。该函数返回将在我执行时运行的测试用例$ 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 的测试运行器找不到我的测试?我必须做什么?

最佳答案

如果你使用 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']

关于python - 我如何告诉 django-nose 我的测试在哪里?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6065151/

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