32

Visual Studio 2008 から Visual Studio 2012 に「アップグレード」しました。単体テストを更新し、個別に実行すると合格するようになりましたが、すべて実行しようとすると、次のエラーが発生しました。

The active Test Run was aborted because the execution process exited unexpectedly. To investigate further, enable local crash dumps either 
at the machine level or for process vstest.executionengine.appcontainer.x86.exe. Go to more details: [http://go.microsoft.com/fwlink/?linkid=232477][1]

リンクにアクセスし、手順に従ってレジストリ キーを追加し、ローカル クラッシュ ダンプを有効にしました。エラーメッセージは次のように変わりました。

The active Test Run was aborted because the execution process exited unexpectedly. Check the execution process logs for more information. 
If the logs are not enabled, then enable the logs and try again.

どうやら、クラッシュを有効にするためにレジストリに加えた変更に気付いたようです。しかし、%LOCALAPPDATA%\CrashDumps を調べたところ、ファイルが作成されていませんでした。

一度に 1 つのテストを (または一度にいくつかのテストを) 実行すると、すべてのテストに合格することができます。問題は Run All だけです。

他の誰かが同様の問題に遭遇しましたか? もしそうなら、どのようにそれらを解決しましたか?

基本的に同じ質問がMSDNで尋ねられましたが、答えは「クラッシュ ダンプへのリンクをクリックしてください」のようなものでした。クラッシュダンプへのリンクが表示されず、クラッシュダンプを生成できないため、その答えは役に立ちません。

StackOverflow に関するこの質問も同様で、最終的に Microsoft Connect にバグが記録されました(これは何らかの理由で延期されたようです)。ないと思います)。

編集:問題は一見自然に消えましたが、以下の回答のいくつかが示唆するように、問題はおそらく単体テストコードでキャッチされていない例外でした. ただし、なぜ問題が Run All でのみ発生し、小さなグループのテストまたは Debug All を実行したときに発生しなかったのかについて、私はまだ混乱しています。

4

8 に答える 8

43

私は同じ問題を抱えていました。テストは明らかに理由もなく失敗しました。後で、バグのあるメソッドが原因であることがわかりましたStackOverflowException。バグを修正したら、VS バグは消えました。

欠陥のあるコードを実行しないため、ほとんどの場合はうまくいくかもしれません。

于 2013-11-25T14:23:56.110 に答える
22

これまでの最善の回避策は、すべてをデバッグすることです。これは、TEST -> Debug -> All Tests で行います。明らかに遅いですが、クラッシュしません。

于 2013-10-03T21:35:11.750 に答える
4

これは、stackoverflow などの特定のエラーで発生する可能性があります。おそらく、これはテスト ランナーをクラッシュさせているため、問題の原因となるテストにヒットしたときに続行できません。

したがって、解決策はすべてのテストをデバッグで実行することです ([テスト] -> [デバッグ] メニューから)。Visual Studio はこのようなエラーを表示します。

于 2014-10-24T09:10:13.740 に答える
1

私はちょうど同じ問題を抱えていました。それが私のコードであることが判明しました-WCFサービス呼び出しの無限ループがありました。あなたの場合、これは別のものかもしれません。したがって、私の提案は、記憶するか (バージョン管理システムにログインしますか?)、コード内のどの場所がこの動作につながるかを把握することです (たとえば、二分法を使用して、さまざまなテストを実行から除外することによって)。そしてワラ!これが問題の原因であると同時に、コードのバグです。

UPDATE あなたのEDITの質問について。テストの小さなグループを実行しても、問題が再現されない可能性があります。この場合、これらのグループにすべてのテストが含まれていることを考えると、いくつかのテストが干渉していると仮定できます。テストクラスの静的データまたはフィールドでしょうか?デバッグ モードでのテストの実行に関しては、驚くことではありません。Visual Studio テスト ランナーは、「実行」モードと「デバッグ」モードで異なる動作をします。

于 2013-11-12T18:34:16.913 に答える
0

スタックオーバーフロー例外ではないことを除いて、同様の問題がありました。これは、Entity Framework を使用するテスト対象のプロジェクトと、EntityFramework および EntityFramework.SqlServer モジュールへの参照が含まれていないNUnit プロジェクトが原因でした。Entity Framework モジュールへの参照を追加すると修正されました。

于 2014-02-11T12:00:31.707 に答える