使用Jenkins进行Django的单元测试
首先
我会提供步骤,描述如何使用Jenkins对基于Django的应用进行单元测试。在GitHub上公开了一个示例应用,可供进行单元测试。
前提事项
-
- サンプルアプリケーションの詳細はバッチアプリケーション(django)を参照ください
- jenkinsは2.150.2を使用します
通过单元测试(django)
我会解释在基于Django的批处理应用程序中进行单元测试的步骤。
软件/应用程序配置

Jenkins 的插件
在Jenkins中安装以下内容
プラグイン用途ShiningPanda PluginVirtualenv Builder。仮想環境でpythonを実行するCobertura Pluginカバレッジレポートを作成する
Jenkins的Python路径

Jenkins的工作設定
使用Jenkins创建作业并执行Django的单元测试
源代码管理

为了在虚拟环境中进行构建等操作,请输入存储库信息。
項目内容リポジトリURLリポジトリURLを入力しますビルドするブランチビルド対象のブランチを入力します
构建

虚拟环境构建器
为了避免与现有环境冲突,使用Virtualenv在虚拟环境中执行单元测试。
項目内容Python versionPythonパスを選択しますClearチェックすると仮想環境は毎回再作成しますNatureCommandの実行形式を指定しますCommandunittestを実行するコマンドを記述します
以下是Command样本的例子。
#pythonのモジュールをインストールする
pip install beautifulsoup4==4.6.0
pip install Django==2.1.5
pip install django-admin-tools==0.8.1
pip install django-bootstrap-form==3.4
pip install lxml==4.3.0
pip install mysqlclient==1.3.12
pip install pytz==2018.9
pip install PyYAML==3.12
pip install pytest==4.1.1
pip install pytest-cov==2.6.1
pip install pytest-django==3.4.5
#gitからcloneしたパスに合わせて設定ファイルの書き換えを行う
JENKINS_HOME=/var/lib/jenkins/workspace/unittest_pypeach_django
CONF_FILE=application_production.yml
sed -e "s/home\/pypeach/var\/lib\/jenkins\/workspace\/unittest_pypeach_django/g" ${JENKINS_HOME}/resource/${CONF_FILE} > ${JENKINS_HOME}/resource/${CONF_FILE}.tmp
cat ${JENKINS_HOME}/resource/${CONF_FILE}.tmp > ${JENKINS_HOME}/resource/${CONF_FILE}
#メッセージを作成する
django-admin compilemessages -l ja
#unittestを実行する
pytest --ds=pypeach_django.settings --reuse-db --junitxml=unittest.xml app_pypeach_django/test
#カバレッジを実行する
pytest --ds=pypeach_django.settings --reuse-db --cov=app_pypeach_django/test --cov-report=xml
pytest-django 的中文释义是「帕耐士测试-尼戈」
使用pytest-django在命令行上进行单元测试。
考试执行
在中国制定的pytest命令中,只需提供一种选择即可:
例)pytest –ds=pypeach_django.settings –reuse-db –junitxml=unittest.xml app_pypeach_django/test
項目内容settings設定ファイル名を指定するdatabase creation/re-useDBの新規作成や既存DB使用を指定するcreating JUnitXML format filesテスト実行結果を出力するパスとファイル名を指定するselecting testsテスト実行対象を指定する。単一ファイルやパッケージ指定ができる
覆盖执行
例)pytest –ds=pypeach_django.settings –reuse-db –cov=app_pypeach_django/test –cov-report=xml
pytest(Python测试框架) –ds=[设置文件] –[数据库创建/重用] –cov=[选择测试文件] –cov-report=[文件格式扩展名]
項目内容settingsテスト実行と同じdatabase creation/re-useテスト実行と同じselecting testsテスト実行対象を指定する
単一ファイルやパッケージ指定ができるfile extensionテスト実行結果を出力するファイルの拡張子を指定する
単一ファイルやパッケージ指定ができるfile extensionテスト実行結果を出力するファイルの拡張子を指定する
建造完成后的处理

汇总考试结果。
Junit测试结果的汇总
安装以下内容
項目内容テスト結果XMLテスト結果のファイルを指定する。
creating JUnitXML format filesとファイルパスを合わせます
creating JUnitXML format filesとファイルパスを合わせます
对Cobertura覆盖率报告进行汇总
安东的需求
配置以下设置:
項目内容Cobertura XMLレポート パターンテスト結果のファイル(coverage.xml)を指定する。
file extensionのファイル拡張子と合わせます
file extensionのファイル拡張子と合わせます
请提供参考资料。
-
- Full pytest documentation
-
- pytest-django Documentation
- Welcome to pytest-cov’s documentation!