49

単体テストの実行中にエラーが発生しました。単体テスト vstest.executionengine.x86.exe をデバッグすると、テストが成功すると終了します。

テストを実行しただけでは (テストがアサートなしで新しいリストを作成するだけの単純なものであっても) vstest.executionengine.x86.exe は閉じず、タスク マネージャーで実行されたままになります。

これは、ファイルの削除や sqllite データベースのクリーンアップを含む、より複雑なテストを作成する際に問題を引き起こしています。

どんな助けでも大歓迎です。

編集 :

再現する手順 :

  • 新しい単体テスト プロジェクトの作成
  • 単体テストのデバッグ - vstest.executionengine.x86 が開いて閉じ、テストがパスします。
  • 単体テストの実行 - vstest.executionengine.x86 が開き、開いたままになります
4

6 に答える 6

57

これは仕様によるものです。

vstest.executionengine.exeは、2つの連続するテスト実行の間に構成の変更を検出した場合にのみ再起動されます。これにより、プロセスの再起動時にパフォーマンスが不必要にヒットしないようにすることができます。

製品の更新 VS2013では、「テスト」->「テスト設定」の下に「テスト実行エンジンの実行を維持する」という新しいメニュー項目があります。これをオフにすると、デフォルトの動作をオプトアウトできます。

于 2012-12-05T05:16:10.620 に答える
41

影響を受けるテストプロジェクトのビルド前イベントとして以下を使用することで、これを回避しました。

64ビットの場合:

taskkill /F /IM vstest.executionengine.exe /FI "MEMUSAGE gt 1"

または32ビットの場合:

taskkill /F /IM vstest.executionengine.x86.exe /FI "MEMUSAGE gt 1"

これにより、テストプロジェクトをビルドする前に、実行エンジンがサイレントに強制終了されます。実行エンジンが実行されていない場合、はコマンド(したがって/FI "MEMUSAGE gt 1"ビルド)が失敗するのを防ぎます。

于 2013-02-03T21:12:47.130 に答える