Mat*_*aly 7 django jenkins django-jenkins python-coverage
我有一些我工作的Django项目,我使用Jenkins进行持续集成.我已经安排好了一段时间并且运行良好.
我希望能够生成自动化的测试覆盖率报告,并让Jenkins处理它们.它看起来像django-jenkins是那样的方式,所以我安装了它coverage.
这是我的相关部分settings.py:
# Jenkins integration
INSTALLED_APPS += ('django_jenkins',)
JENKINS_TASKS = (
'django_jenkins.tasks.with_coverage',
'django_jenkins.tasks.run_pylint',
'django_jenkins.tasks.django_tests',
)
PROJECT_APPS = ['myapp']
Run Code Online (Sandbox Code Playgroud)
现在,我可以运行python manage.py jtest,它按预期工作.但是,如果我运行python manage.py jenkins,它会出错:
Traceback (most recent call last):
File "manage.py", line 10, in <module>
execute_from_command_line(sys.argv)
File "/home/matthew/Projects/blah/venv/local/lib/python2.7/site-packages/django/core/management/__init__.py", line 399, in execute_from_command_line
utility.execute()
File "/home/matthew/Projects/blah/venv/local/lib/python2.7/site-packages/django/core/management/__init__.py", line 392, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File "/home/matthew/Projects/blah/venv/local/lib/python2.7/site-packages/django/core/management/__init__.py", line 272, in fetch_command
klass = load_command_class(app_name, subcommand)
File "/home/matthew/Projects/blah/venv/local/lib/python2.7/site-packages/django/core/management/__init__.py", line 76, in load_command_class
return module.Command()
File "/home/matthew/Projects/blah/venv/local/lib/python2.7/site-packages/django_jenkins/management/commands/__init__.py", line 61, in __init__
for module_name in self.get_task_list()]
File "/home/matthew/Projects/blah/venv/local/lib/python2.7/site-packages/django/utils/importlib.py", line 40, in import_module
__import__(name)
ImportError: No module named django_tests
Run Code Online (Sandbox Code Playgroud)
我使用标准的Django TestCase和LiveServerTestCase类作为我测试的基础.知道我哪里错了吗?文档似乎意味着django_tests已被删除,但我找不到任何关于如何运行Django测试的指示.
我正在使用Django 1.6.2.
Mat*_*aly 11
刚刚意识到我有点笨拙.我需要做的就是放弃这django_tests条线,如下所示:
# Jenkins integration
INSTALLED_APPS += ('django_jenkins',)
JENKINS_TASKS = (
'django_jenkins.tasks.with_coverage',
'django_jenkins.tasks.run_pylint',
)
PROJECT_APPS = ['myapp']
Run Code Online (Sandbox Code Playgroud)
并且django-jenkins将运行测试而无需明确请求它这样做.
小智 5
最新版本的django_jenkins(0.18.0)发生了变化,因此也不再需要django_jenkins.tasks.with_coverage Jenkins任务.
而是按如下方式执行测试运行:
python manage.py jenkins --enable-coverage
Run Code Online (Sandbox Code Playgroud)
要么
python3 manage.py jenkins --enable-coverage
Run Code Online (Sandbox Code Playgroud)
您可以在该项目的GitHub Repo上找到更多信息.
| 归档时间: |
|
| 查看次数: |
5008 次 |
| 最近记录: |