5

私は(Visual Studio 2012で)書いているいくつかのコードのかなり大きなテストスイートに取り組んでいます。ほとんどの場合、単体テストの実行は大したことではありません。しかし、外部インフラストラクチャへの依存度が高い多くの統合テストも含めています。テストの数と、テスト間のインフラストラクチャの依存関係の再設定が相まって、完全なスイートのテスト実行はかなり長くなります (現時点で約 45 分)。

テストの実行は大したことではありません。単体テストはチェックイン時に実行され、統合テストは毎晩行われます。ただし、すべてのテストのコード カバレッジを分析しようとすると、問題が発生します。コード カバレッジの結果は作成されず、出力ウィンドウには次のように表示されます。

net.pipe://megara/vstest.discoveryengine/14108 に送信されたこの要求操作は、構成されたタイムアウト (00:30:00) 内に応答を受信しませんでした。この操作に割り当てられた時間は、より長いタイムアウトの一部であった可能性があります。これは、サービスがまだ操作を処理中であるか、サービスが応答メッセージを送信できなかったことが原因である可能性があります。(チャネル/プロキシを IContextChannel にキャストし、OperationTimeout プロパティを設定することによって) 操作のタイムアウトを増やすことを検討し、サービスがクライアントに接続できることを確認してください。

ここで私をどこに向けているのかわかりません。私は何も使用しませんiContextChannel。すべてのテスト実行は Visual Studio に組み込まれています。そのため、どのような種類のタイムアウトをどこでどのように増やすことができるかはよくわかりません。誰か私がどこを見ればいいのか知っていますか?

4

2 に答える 2

7

.testsettingsソリューションファイルのタイムアウト値を変更してみてください。

持っていない場合は、right-click on solution -> Add New Item -> TestSettingsメニューを使用してソリューションに追加できます。そこでは、個々のテストでタイムアウト (デフォルトは 30 分) を実行したり、テスト実行全体のタイムアウトを設定したりできます。

これが根本的な原因であるかどうかは明らかではありませんが、除外する価値はあります。

于 2012-07-18T01:17:05.250 に答える
5

古いトピックですが、おそらく新しい情報: Visual Studio 2015 で .testsettings ファイルにタイムアウトを設定しようとしてもうまくいきませんでした。テスト設定で何を設定しても、テストは 30 分後に停止します。

[Timeout(milliseconds)]個々のテスト メソッドに適用できる属性が追加されました。個々のテストを微調整して、予想よりも時間がかかっていないことを確認できるため、これは testsettings よりもさらに優れています。

残念ながら、.testsettings ファイルでより長いタイムアウトが定義されていても、.testsettings ファイルを使用して 30 分より長く設定しようとしても、この属性の効果を得ることができませんでした。30 分未満の値は受け入れられましたが、テスト設定の内容に関係なく、より高い値は 30 分で停止します。

.testsettings ファイルを削除した後、タイムアウト属性は期待どおりに機能しているようです。テストは、設定したタイムアウトまで実行されます。

タイムアウト属性が機能しない場合は、.testsettings を削除してみてください。

于 2016-04-27T01:37:06.340 に答える