#oyasuminase

駆け出しオタクエンジニア

Jenkins+Python+unittest

(2020/05/06:追記)こっちを見たほうが良いです。

oyasuminase.hatenablog.com


Jenkinsでpythonのunittestを実行します。

  • jenkins: 2.234

Python周りの設定

Python3のインストール

EC2にはデフォルトでPython2系が入っているので3系を入れる。

$ sudo yum update
$ sudo yum install python3

venvは使いません。必要になったときにやる。

ShiningPanda Pluginのインストール

  1. Jenkinsの管理>プラグインの管理より「ShiningPandas Plugin」を検索してインストール。
  2. Jenkinsの管理>Global Tool ConfigurationよりPython3を追加する。

これでJenkinsでPython3系が使えます。

ジョブの作成

Python3読み込みテスト

Python3を使えるようになっているか確認します。

  1. フリースタイルプロジェクト>ビルド>ビルド手順の追加>Virtualenv Builderを追加。
  2. 先程追加したPython3を選択して下記のshellを書く。
python --version

これでジョブを保存してビルドを実行。

ジョブのコンソール出力を確認。

+ python --version
Python 3.7.6

OK。認識できてますね。

unittestジョブの作成

さて本題です。ジョブの構成は下記の通り。

  1. Githubからclone
  2. unittest実行

これだけ。今後はポーリングやフックスクリプトを起点に実行するつもり。ひとまずはジョブの作成。先程の確認用ジョブを書き換えていきます。

1. Githubからclone

ソースコード管理>gitからリポジトリURLを追加するだけ。

2. unittest実行

Virtualenv Builderのshellを下記の通り変更。

pip install -r requirements.txt
python -m unittest

Jenkinsとは関係ないんだけど__init__.pyディレクトリにないとtestが認識されないんですね。テスト結果の集計をしたいけどもう夜も更けているのでここまでで。

ジョブの実行

失敗しました。環境変数がとれなかったようです。外部APIのテストやるわけじゃないしここもMockにした方がいいのかな?今回はJenkinsの勉強を兼ねてGUIから環境変数を追加してみます。

Jenkinsの管理>システムの設定>グローバルプロパティより環境変数を追加。

再度ジョブを実行します。

+ python -m unittest
....
----------------------------------------------------------------------
Ran 4 tests in 0.134s

OK

OK。おやすみ〜