5

Microsoft 単体テスト フレームワークが突然ストライキを起こしました。

VS2008 でテストを実行しようとすると、「VSTestHost.exe が動作を停止しました」というメッセージのダイアログが表示されます。

すべての更新が適用された状態で、Visual Studio Team System 2008 (バージョン 9.0.30729.1 SP) を Vista で実行しています。

「問題のレポートと解決策」は、「ソフトウェア テスター向けの Visual Studio Team Edition の最新の製品版にアップグレードする」ことを示唆していますが、これは正しくありません。

再起動を試みました。
「devenv /resetuserdata」を試しました

これらは違いはありませんでした。

このナンセンスに基づいてMbUnitに戻りたいのですが、それは私の選択ではありません。
これを修正する方法について何か提案はありますか?

4

4 に答える 4

8

これは通常、エンドレス ループや循環参照など、コードに何か問題があることが原因です。

私は同じ問題を抱えていて、混乱しているのは自分のコードであり、テスト フレームワークはシャットダウンすることで自分のコードから自分自身を保護しているだけであることに気付きました。

私にとって重要なのは、同じことが 2 つの異なるテスト フレームワークで発生したことです。だからそれは私のコードでなければなりませんでした。

于 2009-10-29T17:19:11.837 に答える
1

私が尋ねていた問題を見つけました、そしてそれは私のせいでした。スタックオーバーフローをコーディングしました。一部のコードを拡張メソッドにリファクタリングし、呼び出したLinq拡張メソッドに一致するように名前を変更したため、自己再帰的に呼び出しました。

これから学ぶべき教訓:
1: 「選択」は壊れていません。評判が悪かったので、私はフレームワークのせいにするのが速すぎました。

2:しかし、病理学的に一般的で完全に誤解を招くエラーメッセージがありました。

エラーメッセージがそれほどひどい場合、適切なデバッグ手法は、エラーの原因となるものと引き起こさないものを特定することです。私の場合、失敗したのは「テスト実行」ではなく、SQLデータベーステストを含む実行のみであることに気付くとすぐにブレークスルーが発生しました。ドメインオブジェクトとモックリポジトリテストは問題なく実行できたため、それが実行していたコードについて何かである。そして、デバッガーがテストにステップインすること。悲惨なエラーから、それほど遠くまでは進んでいないと思いました。

于 2008-10-26T16:25:29.510 に答える
1

VSTestHost.exe が動作を停止したことを説明するエラー メッセージはあまり説明的ではないことに注意してください。テスト結果には、「テストの実行が完了しました」というリンクがあります (または、あなたの場合は「テストの実行に失敗しました」と表示されます)。これをクリックすると、テスト ホストの原因となった正確なエラー メッセージが表示されます。失敗します (スタック オーバーフロー例外)。

それらはその情報を埋めてしまいますが、特にホストがクラッシュしない場合に知っておくと便利ですが、一部のテストは単に機能しません。理由に関する情報がそのリンクで見つかる場合があります。

于 2008-11-17T16:30:37.343 に答える
-1

Visual Studioで修復を実行したり、工場出荷時の設定にリセットしたりしましたか?

工場出荷時の設定にリセットするには、実行ウィンドウからdevenv/ResetSettingsを実行します。

于 2008-10-26T16:26:44.437 に答える