unittest2パッケージと2.7のunittestモジュールまとめ
以前ブログに書いたparameterized testがPython2.7で実装されるという事が気になり始めたので、おもむろにPython2.7b2のWhat's Newの章を読んでみた。
すると、unittest2というパッケージが外部ライブラリとしてあるようだ。
urllib2的なノリかと思ってみたら、2.7で実装される機能のバックポートらしい。
一足先に使いたい人はeasy_installでインスコしてね!
簡単なまとめ
2.7b2の公式ドキュメントから簡単にまとめてみた。
unittest2も多分同じ感じで使えると思う。
詳細はunittest2の使い方を見てくださいませ。
http://www.voidspace.org.uk/python/articles/unittest2.shtml
また、訳が間違ってるなどあったら指摘お願いいたしまする。
- py.testやnoseほど強力では無いがtestモジュールを検出して実行できるようになった
- unittest.TestLoader.discoverメソッドを使う
- ライブラリリファレンス見る限りワイルドカードを使ってるような
- main()関数のオプション追加
- バッファオプション
- 標準出力に出力しないでバッファリングする。出力のタイミングはすべてのテスト完了かテスト失敗時
- Ctrl + Cの割り込み
- 割り込みがあった時点で完了したテストを出力して終了
- たしか今まではKeyboardInterruptの例外が出て、これがハンドルされず落ちるというような感じだったと思う
- 割り込みがあった時点で完了したテストを出力して終了
- failfastオプション
- テストが失敗した時点でテスト終了
- バッファオプション
- 対話モードでのテストの進捗の出力
- xが失敗時、uが想定外の成功(なんか訳怪しい
- テストのスキップ
- ある条件でのテストをスキップするとか
- 使いどころとしてはフィクスチャでテストデータ投入に失敗したらパスとかっぽい
- ある条件でのテストをスキップするとか
- テスト失敗時の詳細なメッセージの出力
- assertEqual, assertFalse, assertTrueが対象
- assertRaisesメソッドにwith文が使えるようになった
- with self.assertRaises(expression)の後の行に例外が発生する処理を書く
- クラスおよびモジュールレベルでのフィクスチャ追加
- setUpModuleとかtearDownClassとか
- cleanupメソッドの追加
- setUpが失敗した場合に実行する関数
- assert関数の大幅な追加・変更
- 大杉。公式ドキュメント見て。
- unittest.main()関数にexit引数の追加
- main関数がFalseを返すときにはsys.exit()を実行しない
- TestResultクラスにstartpTestRun()メソッド、stopTestRun()メソッドの追加
- startTestRunはテスト開始後に一度だけ呼び出す。stopTestRunは終了後に一度だけ呼び出す。
ちなみに2.7はまだベータなので変更・追加される可能性はある。
その時はまた新たに差分のみを新規に起こすかここに追記します。
parametarized testは?
まだ問題があるみたいでパッケージには入ってない。
残念。
余談
unittestのファイルは分割されたらしい。
でも今まで通りimportして使えるから安心してね!
って書いてあった。
コード読んでみるか。
余談その2
unittest2の作者はIronPython in Actionの作者だそうです。