2016-01-31 4 views
13

VS2015でユニットテストを実行すると、非常に長い遅延(約1分! 1回のテストでも "テストエクスプローラ"の上部にプログレスバーが表示され、約1分間流れてテスト結果が得られます。報告されたテストランタイムは期待通りです。非常に小さく、数ミリ秒です。VS2015でC#ユニットテストを実行すると非常に長い遅延が発生する

私の質問は - これをどのようにデバッグできますか?テストが実際に実行される前に、この瞬間に何が起こっているのか、どのように確認できますか?

+0

実際にテストをデバッグしていて、最初のブレークポイントが1分後にヒットした場合、またはテストを実行しているだけの場合は、それは明確ではありません。 2番目のケースでこれをデバッグするには、ブレークポイントとデバッグを実行する必要があります; – vinjenzo

+0

ユニバーサルWindowsアプリケーションユニットテストを実行していますか? –

+2

私は同様の問題をランダムに実行しました。それはバグのようです。ほとんどの場合、テストは非常に速く(ミリ秒単位で)実行されますが、しばらくして何かに掛かるようです。私は1つのテストまたは50を実行しているかどうかは関係ありません。ちょうど巨大な休止、時々テストを開始するのを待つ数分。その後、テストが実行されるとすぐに高速になります。通常、Visual Studioを再起動すると、それがクリアされます。しばらくの間。とてもうるさい。アップデート2でもまだ起こります。 –

答えて

2

は何も起きていないので、かなりの時間がかかります。テストが実行される前に(例えば、すべてのアセンブリとその依存関係をロードする必要がある)起動処理が必要です。このヒットは、単一のテストを実行している場合、またはスイート内のすべてのテストを実行している場合には、一般的に同じです。

「テスト」出力ウィンドウを見ると、実際に何が起こっているのか、テストを実行するのにかかる実際の時間がわかります。 1回のラン(0:00:01.0416253)===鉱山で、例えば、一つのテストを実行すること..

==========実行試験終了49回のテストを実行する同様のオーバーヘッドを示し=======

==========ランテスト終了:49ラン(0:00:01.9156121)==========

静的コンストラクタなど、アセンブリの読み込みを遅くすることができるさまざまなものがあります。私は依存関係のない新鮮なテストプロジェクトを作成して、それがあなたのマシンだけではないことを知るように同じ長い遅延の問題を示さないことを確認することから始める傾向があります。次に、既存のテストプロジェクトの依存関係を追加します。特定の依存関係を追加すると遅延が発生するかどうかを確認するために、一度に1つの依存関係を追加します。次に、そのプロジェクトを見て静的データベースへの接続/ネットワーク接続の確立を試みるコンストラクタ。

テストをデバッグしようとする価値があるかもしれませんが、ブレーク時に例外が発生していることを確認してください(データベース接続に失敗したようなものであれば、そのプロセスの一部として例外がスローされる可能性があります)。

関連する問題