概要
テストエクスプローラからテストを実行するとNUnitを使用しているテストのみすぐに終了してしまう現象が発生していました。デバッグ実行でもすぐに終了し、また他のMSTestの方は実行できていました。加えてNunitに関してはテストを実行した後の結果表示も変わらない (初期の未実行アイコンのまま) という状況でした。
上記の件について、対応方法を備忘録として残します。
※Visual Studio 2019で確認しました。
原因
テスト実行後すぐに中断してしまう原因は複数あるようですが、調べたところ下記のパターンが多いようです。
- Visual Studio上部の「テスト」 → 「Any CPUプロジェクトのプロセッサ アーキテクチャ」が、「x86」になっている
- 「NUnit3TestAdapter」のバージョンが古い
私は (2) のパターンでした。「NUnit3TestAdapter」は「拡張機能」と「NuGet」どちらともあり、「NuGet」側の「NUnit3TestAdapter」のバージョンが古い状態でした。
「拡張機能」はVisual Studioの機能自体を拡張し、「NuGet」はプロジェクト内の機能を拡張できるため、「NUnit3TestAdapter」という名称は同じですが、もちろん用途はそれぞれ違うはずです。
補足
Visual Studio上部の「デバッグ」 → 「ウィンドウ」 → 「出力」の出力ウィンドウで「出力元」を「テスト」にすると、テスト時のログが表示されます。
私の場合はここに赤文字で「InnerException: System.ArgumentException: Unknown framework version 8.0」と表示されていました。
終わりに
本現象はテストエクスプローラのログからはエラーは確認できませんでした。(未実行と同じ状態)
また、補足に記載した出力ウィンドウでログを確認する方法を知らなかったため、テストの実装自体にどこか誤った箇所があると思い調査していました。
蓋を開けてみれば初歩的な解消法かもしれませんが、人によっては私のようにハマる可能性もあるかと思いました。