7

私が取り組んでいる Django プロジェクトがいくつかあり、継続的な統合のために Jenkins を使用しています。私はその取り決めをしばらくの間稼働させていましたが、うまく機能しています。

自動化されたテスト カバレッジ レポートを生成し、Jenkins で処理できるようにしたいと考えています。django-jenkinsがそのための方法のように見えたので、インストールしてcoverage.

my の関連セクションは次の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']

これで を実行でき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

テストの基礎として、標準の DjangoTestCaseとクラスを使用しています。LiveServerTestCaseここでどこが間違っているのか分かりますか? ドキュメントはdjango_tests削除されたことを暗示しているようですが、Django テストを現在どのように実行しているかについての兆候は見つかりません。

私はDjango 1.6.2を使用しています。

4

2 に答える 2

11

私は少ししびれていることに気づきました。私がする必要があったのはdjango_tests、次のように行をドロップすることだけでした:

# Jenkins integration
INSTALLED_APPS += ('django_jenkins',)
JENKINS_TASKS = ( 
    'django_jenkins.tasks.with_coverage',
    'django_jenkins.tasks.run_pylint',
)
PROJECT_APPS = ['myapp']

そしてdjango-jenkins、明示的に要求しなくてもテストを実行します。

于 2014-02-26T14:26:56.210 に答える
5

django_jenkins の最新バージョン (0.18.0) には変更があり、django_jenkins.tasks.with_coverage Jenkins タスクも必要なくなりました。

代わりに、次のようにテスト ランを実行します。

python manage.py jenkins --enable-coverage

また

python3 manage.py jenkins --enable-coverage

プロジェクトのGitHub Repoで詳細を確認できます。

于 2015-12-22T16:36:04.497 に答える