2010年9月25日土曜日

nose を複数バージョンの Python で使う



nose とは Python 用のテストフレームワークです。Python には他にも unittest や doctest などがありますが、使いやすいという理由でこれを使ってます。


python_select で Python のバージョンを切り替えながら nose を使っていると、どうやら python_select による変更が反映されてないのではないか?ということに気づきました。


easy_install によってインストールされた nosetests は /usr/local/bin 以下に設置されていたので、中身を見てみます。



#!/usr/bin/python
# EASY-INSTALL-ENTRY-SCRIPT: 'nose==0.11.4','console_scripts','nosetests'
__requires__ = 'nose==0.11.4'
import sys
from pkg_resources import load_entry_point

sys.exit(
load_entry_point('nose==0.11.4', 'console_scripts', 'nosetests')()
)


一行目を見る限り、どうやらデフォルトでインストールされている Python を利用しているようです。


そこで、以下のように修正しました。



#!/usr/bin/env python
# EASY-INSTALL-ENTRY-SCRIPT: 'nose==0.11.4','console_scripts','nosetests'
__requires__ = 'nose==0.11.4'
import sys
from pkg_resources import load_entry_point

sys.exit(
load_entry_point('nose==0.11.4', 'console_scripts', 'nosetests')()
)


これで、python_select による変更が反映されるようになりました。


ただし、nose を新しいバージョンにアップデートするたびに修正が必要になるのが面倒ですね。


nose や unittest などのテストフレームワークについては


エキスパートPythonプログラミング
Tarek Ziade
アスキー・メディアワークス
売り上げランキング: 8790


に詳しく載ってます。今読んでますが難しい……。





0 件のコメント: