JenkinsでDjangoのCI環境作ったら疲れた

Jenkins(1.540)でテストを実行するとエラーになっちゃう

Pythonプロフェッショナルプログラミングを参考にしながら、JenkinsでDjangoアプリのCI環境を構築してたら、以下のエラーが出まくって困った。

・・・

Ran 3 tests in 0.017s

OK

Generating XML reports...

・・・

AttributeError: '_XMLTestResult' object has no attribute 'skipped'

どうも、テストは通ってその後のXML生成でこけてるみたい。 ローカル環境(Python2.7)でテストを実行したときは問題なかったので、原因がよくわからんかったけど、Jenkinsの実行環境(CentOS 6.2)のPythonが2.6だったのでそれが原因と仮定。 CentにPython2.7入れることにした。

CentOSにPyhon2.7環境つくる

以下のURL参考にしながら、CentOSにPython2.75を入れ、virtualenv環境をPython2.75で際構築した。

参考:CentOS6にpython2.7を入れる

Python2.7をインストール

$ wget --no-check-certificate http://www.python.org/ftp/python/2.7.5/Python-2.7.5.tar.bz2
$ tar xf Python-2.7.5.tar.bz2
$ cd Python-2.7.5
$ ./configure --with-threads --enable-shared --prefix=/usr/local
$ make
$ make altinstall 

virtualenv環境をPython2.7で構築

$ virtualenv --python=/usr/local/bin/python2.7 venv

新たな環境でテストを再度実行

新たに構築したpython2.7環境でJenkinsのビルドを再実行。無事テスト結果のレポートが出力された。 やはり予想通り、Jenkinsの実行環境のPythonが古いのが問題の原因だった。

スクリーンショット 2014-05-06 2.19.33.png

というか、そろそろ、いいかげん、Python3x系使うようにしよ。

Pythonプロフェッショナルプログラミング

Pythonプロフェッショナルプログラミング