VSTSユニットテストのTimeout属性の注意点

Visual Studio Team Systemユニットテスト機能のTimeout属性を調査していて軽くはまりました・・・
試しにループで100万回足し算するようなテストメソッドを記述して、タイムアウト属性でタイムアウトするか検証。何回やってもタイムアウトしないし、なんか特別な設定が必要なのかな・・・といろいろ調べてて、あれこれ試してみてやっとこさ、デバッガ有でテストを実行してたから駄目だったのがわかりました。

単体テストタイムアウトの検証を行うには、VSのメニューから「選択されたテストプロジェクトをデバッガ無しで開始」を選択して、テストを実行する必要があります。(↓図)


デバッガ無しでテストを実行


これで、やっとタイムアウトしてテストが失敗してくれました(↓)


タイムアウトの結果



あ、なるほど!!デバッガありだとパフォーマンス落ちるし。そりゃそうですよね。
それでデバッガなしじゃないとタイムアウト属性も働かないんですねぇ〜。
いやいや、それは直感的に・・・





わ か る か(怒)




そんなのMSDNのどこにも書いて無いじゃん・・・勘弁してぽ・・・