Python、Metatestフレームワーク
Metatest - a Python test framework
この間のPyCon UKから。そのときのプレゼン資料。
これが面白いアイデアで、Kent Beckのunit testなんかとの比較は、上記資料に書いてあるので特にふれないけども、さくっとシンプルに書けるのがよい(そのように簡単にテストを書けるようにするってのをゴールにしているそう)。
たとえば、four.pyに
def x(a,b): return a*b
と書いたとして、それのテストコードは
from metatest.py.four import x
x(2,2) == 4 # Pass
x(2,2) == 6 # Fail
x(10,'',_ex=Exception) # Fail
x(2,2,_eq=4) # Pass
if __name__ == '__main__':
import metatest
metatest.run()
と凄い簡単。テスト対象モジュールのインポートさえしていないというのも面白いのだけども、これはPEP302のインポートフックを利用してる。ってこの仕組み全然知らなかった、ASPNのLazy module imports が知るのに役に立つ。
でもまあ、まだ出たばっかで独自のテストプレーヤーを使う仕組みなんかもできていないし、今すぐunittestに代わって使えるというものでもない。今後継続して開発されるのなら使えるものになってくかも。
