如何让pytest-django只运行单个应用程序的测试

 周小范范 发布于 2022-12-04 13:52

我希望,默认情况下,pytest-django会运行相同的测试./manage.py test.相反,它运行所有Django测试,基本上它找到的每个python文件.

这是我的pytest.ini:

[pytest]
python_files=*.py
norecursedirs = .*, CVS, _darcs, {arch}, *.egg, django, south

我希望能够像`py.test main.tests.TestAccess'那样运行一个测试用例.有关如何实现这一点的任何想法?

我试过-k但是,即使有了这个选项,我也看到很多其他文件正在运行,我对测试不感兴趣.这是一些输出:

(vgmdash33-env)The-Judge:vgmdash joshuafialkoff$ py.test -k nothing_by_this_name
==================================== test session starts ====================================
platform darwin -- Python 3.3.5 -- py-1.4.26 -- pytest-2.6.4
plugins: bdd, django
collected 18 items / 19 errors 

========================================== ERRORS ===========================================
_____________________________ ERROR collecting temp_scripts.py ______________________________
../../../Envs/vgmdash33-env/lib/python3.3/site-packages/_pytest/python.py:463: in _importtestmodule
    mod = self.fspath.pyimport(ensuresyspath=True)
../../../Envs/vgmdash33-env/lib/python3.3/site-packages/py/_path/local.py:641: in pyimport
    __import__(modname)
E     File "/Users/joshuafialkoff/Documents/setaris/vgmdash/temp_scripts.py", line 10
E       wget --http-user='xxx.com\xxx' --http-password=xxxxxx http://xxx.xxx.com
E                                                                        ^
E   SyntaxError: invalid syntax
___________________________ ERROR collecting fabfile/__init__.py ____________________________
fabfile/__init__.py:1: in 
    from django_fabric_aws import *
E   ImportError: No module named 'django_fabric_aws'
_______________________ ERROR collecting fabfile/django_fabric_aws.py _______________________
../../../Envs/vgmdash33-env/lib/python3.3/site-packages/py/_path/local.py:629: in pyimport
    __import__(pkgpath.basename)
fabfile/__init__.py:1: in 
    from django_fabric_aws import *
E   ImportError: No module named 'django_fabric_aws'
_________________________ ERROR collecting fabfile/project_conf.py __________________________
../../../Envs/vgmdash33-env/lib/python3.3/site-packages/py/_path/local.py:629: in pyimport
    __import__(pkgpath.basename)
fabfile/__init__.py:1: in 
    from django_fabric_aws import *
E   ImportError: No module named 'django_fabric_aws'
_____________________________ ERROR collecting fabfile/tasks.py _____________________________
../../../Envs/vgmdash33-env/lib/python3.3/site-packages/py/_path/local.py:629: in pyimport
    __import__(pkgpath.basename)
fabfile/__init__.py:1: in 
    from django_fabric_aws import *
E   ImportError: No module named 'django_fabric_aws'
____________________ ERROR collecting fabfile/templates/gunicorn.conf.py ____________________
../../../Envs/vgmdash33-env/lib/python3.3/site-packages/py/_path/local.py:641: in pyimport
    __import__(modname)
E   ImportError: No module named 'gunicorn.conf'
_____________________________ ERROR collecting vgmdash/urls.py ______________________________
vgmdash/urls.py:5: in 
    from django.contrib import admin
../../../Envs/vgmdash33-env/lib/python3.3/site-packages/django/contrib/admin/__init__.py:4: in 
    from django.contrib.admin.helpers import ACTION_CHECKBOX_NAME
:1565: in _find_and_load
    ???
:1532: in _find_and_load_unlocked
    ???
../../../Envs/vgmdash33-env/lib/python3.3/site-packages/_pytest/assertion/rewrite.py:159: in load_module
    py.builtin.exec_(co, mod.__dict__)
../../../Envs/vgmdash33-env/lib/python3.3/site-packages/django/contrib/admin/helpers.py:4: in 
    from django.contrib.admin.utils import (flatten_fieldsets, lookup_field,
:1565: in _find_and_load
    ???
:1532: in _find_and_load_unlocked
    ???
../../../Envs/vgmdash33-env/lib/python3.3/site-packages/_pytest/assertion/rewrite.py:159: in load_module
    py.builtin.exec_(co, mod.__dict__)
../../../Envs/vgmdash33-env/lib/python3.3/site-packages/django/contrib/admin/utils.py:6: in 
    from django.contrib.auth import get_permission_codename
../../../Envs/vgmdash33-env/lib/python3.3/site-packages/django/contrib/auth/__init__.py:9: in 
    from django.middleware.csrf import rotate_token
:1565: in _find_and_load
    ???
:1532: in _find_and_load_unlocked
    ???
../../../Envs/vgmdash33-env/lib/python3.3/site-packages/_pytest/assertion/rewrite.py:159: in load_module
    py.builtin.exec_(co, mod.__dict__)
../../../Envs/vgmdash33-env/lib/python3.3/site-packages/django/middleware/csrf.py:14: in 
    from django.utils.cache import patch_vary_headers
:1565: in _find_and_load
    ???
:1532: in _find_and_load_unlocked
    ???
../../../Envs/vgmdash33-env/lib/python3.3/site-packages/_pytest/assertion/rewrite.py:159: in load_module
    py.builtin.exec_(co, mod.__dict__)
../../../Envs/vgmdash33-env/lib/python3.3/site-packages/django/utils/cache.py:26: in 
    from django.core.cache import caches
../../../Envs/vgmdash33-env/lib/python3.3/site-packages/django/core/cache/__init__.py:34: in 
    if DEFAULT_CACHE_ALIAS not in settings.CACHES:
../../../Envs/vgmdash33-env/lib/python3.3/site-packages/django/conf/__init__.py:46: in __getattr__
    self._setup(name)
../../../Envs/vgmdash33-env/lib/python3.3/site-packages/django/conf/__init__.py:40: in _setup
    % (desc, ENVIRONMENT_VARIABLE))
E   django.core.exceptions.ImproperlyConfigured: Requested setting CACHES, but settings are not configured. You must either define the environment variable DJANGO_SETTINGS_MODULE or call settings.configure() before accessing settings.
___________________ ERROR collecting vgmdash/apps/activity/formatters.py ____________________
vgmdash/apps/activity/formatters.py:25: in 
    formatter.register(...)
E   TypeError: register() missing 2 required positional arguments: 'field_name' and 'format_func'
_____________________ ERROR collecting vgmdash/apps/activity/models.py ______________________
vgmdash/apps/activity/models.py:22: in 
    class Log(model_url_mixin_factory(), models.Model):
../../../Envs/vgmdash33-env/lib/python3.3/site-packages/django/db/models/base.py:286: in __new__
    new_class._meta.apps.register_model(new_class._meta.app_label, new_class)
../../../Envs/vgmdash33-env/lib/python3.3/site-packages/django/apps/registry.py:213: in register_model
    (model_name, app_label, app_models[model_name], model))
E   RuntimeError: Conflicting 'log' models in application 'activity':  and .
_____________________ ERROR collecting vgmdash/apps/authstats/models.py _____________________
vgmdash/apps/authstats/models.py:13: in 
    class UserStats(models.Model):
../../../Envs/vgmdash33-env/lib/python3.3/site-packages/django/db/models/base.py:286: in __new__
    new_class._meta.apps.register_model(new_class._meta.app_label, new_class)
../../../Envs/vgmdash33-env/lib/python3.3/site-packages/django/apps/registry.py:213: in register_model
    (model_name, app_label, app_models[model_name], model))
E   RuntimeError: Conflicting 'userstats' models in application 'authstats':  and .
_____________________ ERROR collecting vgmdash/apps/fileshare/models.py _____________________
vgmdash/apps/fileshare/models.py:14: in 
    class FileShare(models.Model):
../../../Envs/vgmdash33-env/lib/python3.3/site-packages/django/db/models/base.py:286: in __new__
    new_class._meta.apps.register_model(new_class._meta.app_label, new_class)
../../../Envs/vgmdash33-env/lib/python3.3/site-packages/django/apps/registry.py:213: in register_model
    (model_name, app_label, app_models[model_name], model))
E   RuntimeError: Conflicting 'fileshare' models in application 'fileshare':  and .
________________________ ERROR collecting vgmdash/apps/main/admin.py ________________________
vgmdash/apps/main/admin.py:4: in 
    admin.site.register(Transaction)
../../../Envs/vgmdash33-env/lib/python3.3/site-packages/django/contrib/admin/sites.py:84: in register
    raise AlreadyRegistered('The model %s is already registered' % model.__name__)
E   django.contrib.admin.sites.AlreadyRegistered: The model Transaction is already registered
_______________________ ERROR collecting vgmdash/apps/main/loggers.py _______________________
vgmdash/apps/main/loggers.py:12: in 
    class ClientDetail(LogDetail):
../../../Envs/vgmdash33-env/lib/python3.3/site-packages/django/db/models/base.py:286: in __new__
    new_class._meta.apps.register_model(new_class._meta.app_label, new_class)
../../../Envs/vgmdash33-env/lib/python3.3/site-packages/django/apps/registry.py:213: in register_model
    (model_name, app_label, app_models[model_name], model))
E   RuntimeError: Conflicting 'clientdetail' models in application 'main':  and .
_______________________ ERROR collecting vgmdash/apps/main/models.py ________________________
vgmdash/apps/main/models.py:44: in 
    class Manufacturer(model_url_mixin_factory(), models.Model):
../../../Envs/vgmdash33-env/lib/python3.3/site-packages/django/db/models/base.py:286: in __new__
    new_class._meta.apps.register_model(new_class._meta.app_label, new_class)
../../../Envs/vgmdash33-env/lib/python3.3/site-packages/django/apps/registry.py:213: in register_model
    (model_name, app_label, app_models[model_name], model))
E   RuntimeError: Conflicting 'manufacturer' models in application 'main':  and .
_________________ ERROR collecting vgmdash/apps/main/features/steps/auth.py _________________
vgmdash/apps/main/features/steps/auth.py:7: in 
    use_step_matcher(re)
E   NameError: name 're' is not defined
________________ ERROR collecting vgmdash/apps/main/features/steps/browse.py ________________
vgmdash/apps/main/features/steps/browse.py:1: in 
    @when('I run a (?P.*) import using "(?P.*)"')
E   NameError: name 'when' is not defined
_______________ ERROR collecting vgmdash/apps/main/features/steps/objects.py ________________
vgmdash/apps/main/features/steps/objects.py:9: in 
    use_step_matcher(re)
../../../Envs/vgmdash33-env/lib/python3.3/site-packages/behave/matchers.py:209: in use_step_matcher
    current_matcher = matcher_mapping[name]
E   KeyError: 
______________________ ERROR collecting vgmdash/apps/myauth/models.py _______________________
vgmdash/apps/myauth/models.py:16: in 
    class User(model_url_mixin_factory(token_field='username'), UserBase):
../../../Envs/vgmdash33-env/lib/python3.3/site-packages/django/db/models/base.py:253: in __new__
    new_class.add_to_class(field.name, copy.deepcopy(field))
../../../Envs/vgmdash33-env/lib/python3.3/site-packages/django/db/models/base.py:300: in add_to_class
    value.contribute_to_class(cls, name)
../../../Envs/vgmdash33-env/lib/python3.3/site-packages/django/db/models/fields/related.py:2241: in contribute_to_class
    self.rel.through = create_many_to_many_intermediary_model(self, cls)
../../../Envs/vgmdash33-env/lib/python3.3/site-packages/django/db/models/fields/related.py:1847: in create_many_to_many_intermediary_model
    to: models.ForeignKey(to_model, related_name='%s+' % name, db_tablespace=field.db_tablespace, db_constraint=field.rel.db_constraint)
../../../Envs/vgmdash33-env/lib/python3.3/site-packages/django/db/models/base.py:286: in __new__
    new_class._meta.apps.register_model(new_class._meta.app_label, new_class)
../../../Envs/vgmdash33-env/lib/python3.3/site-packages/django/apps/registry.py:213: in register_model
    (model_name, app_label, app_models[model_name], model))
E   RuntimeError: Conflicting 'user_groups' models in application 'myauth':  and .
______________ ERROR collecting vgmdash/apps/myauth/migrations/0001_initial.py ______________
vgmdash/apps/myauth/migrations/0001_initial.py:2: in 
    from south.utils import datetime_utils as datetime
E   ImportError: No module named 'south'
====================== 18 tests deselected by '-knothing_by_this_name' ======================
=================== 18 deselected, 2 warnings, 19 error in 10.19 seconds ====================

sax.. 7

我看到更多的选择

1)使用路径

 py.test 

py.test将仅在该子目录中搜索测试

要么

 py.test ::

将只执行

2)用特定标记装饰每个测试

@pytest.mark.app1
def test_bla_bla():
    ....

并运行

    py.test -m app1

3)使用-k传递测试功能名称

1 个回答
  • 我看到更多的选择

    1)使用路径

     py.test <path_to_my_app>
    

    py.test将仅在该子目录中搜索测试

    要么

     py.test <path_to_file>::<test>
    

    将只执行

    2)用特定标记装饰每个测试

    @pytest.mark.app1
    def test_bla_bla():
        ....
    

    并运行

        py.test -m app1
    

    3)使用-k传递测试功能名称

    2022-12-11 02:07 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有