VSTSユニットテストのTimeout属性の注意点
Visual Studio Team Systemのユニットテスト機能のTimeout属性を調査していて軽くはまりました・・・
試しにループで100万回足し算するようなテストメソッドを記述して、タイムアウト属性でタイムアウトするか検証。何回やってもタイムアウトしないし、なんか特別な設定が必要なのかな・・・といろいろ調べてて、あれこれ試してみてやっとこさ、デバッガ有でテストを実行してたから駄目だったのがわかりました。
単体テストでタイムアウトの検証を行うには、VSのメニューから「選択されたテストプロジェクトをデバッガ無しで開始」を選択して、テストを実行する必要があります。(↓図)
これで、やっとタイムアウトしてテストが失敗してくれました(↓)
タイムアウトの結果
あ、なるほど!!デバッガありだとパフォーマンス落ちるし。そりゃそうですよね。
それでデバッガなしじゃないとタイムアウト属性も働かないんですねぇ〜。
いやいや、それは直感的に・・・
わ か る か(怒)
そんなのMSDNのどこにも書いて無いじゃん・・・勘弁してぽ・・・