我希望,默认情况下,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: infrom 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)使用路径
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
传递测试功能名称