8

インストールしたばかりのvs2012update 2(http://www.microsoft.com/en-us/download/details.aspx?id=36833)なので、vs fakes / shimsを使用して、テストが難しいコードをテストできます。偽のアセンブリを作成すると、すべてが正常にコンパイルされ、すべての参照が期待どおりに単体テストプロジェクト内に追加されます。ただし、どのテストでも次のコードを実行しています...

using (ShimsContext.Create())
{
    //Doesn't matter whats in here
}

次の例外をスローします...

Microsoft.QualityTools.Testing.Fakes.UnitTestIsolation.UnitTestIsolationException : UnitTestIsolation instrumentation failed to initialize.  Please restart Visual Studio and rerun this test

スタックトレースによる完全な例外...

Test 'Abot.Tests.Unit.Core.HapHyperLinkParserTest.HyperLinkParserTest.GetLinks_AreaTags_ReturnsLinks' failed: Microsoft.QualityTools.Testing.Fakes.UnitTestIsolation.UnitTestIsolationException : UnitTestIsolation instrumentation failed to initialize. Please restart Visual Studio and rerun this test
at Microsoft.QualityTools.Testing.Fakes.UnitTestIsolation.UnitTestIsolationRuntime.InitializeUnitTestIsolationInstrumentationProvider()
at Microsoft.QualityTools.Testing.Fakes.Shims.ShimRuntime.CreateContext()
at Microsoft.QualityTools.Testing.Fakes.ShimsContext.Create()
Core\HyperlinkParserTest.cs(59,0): at Abot.Tests.Unit.Core.HyperLinkParserTest.GetLinks_AreaTags_ReturnsLinks()

いくつかのメモ...

  • VisualStudio2012プレミアムを使用しています
  • ソリューションターゲット.net4.0のすべてのプロジェクト
  • テストフレームワークにnunitを使用しています
  • testdriven.netプラグインとnunitGUIを介してテストを実行しようとしましたが、同じエラーが発生しました。
  • .net 4.5をターゲットにしようとしましたが、同じエラーが発生しました
  • TypemockまたはNcrunchを使用しておらず、インストールされていません
  • 私はMoqを使用していますが、thから削除しました
  • 特定のテストに関連付けられていないため、別のテストファイルや別のソリューションでも失敗することを確認しました。
4

3 に答える 3

9

マシューは正しかった。vsテストランナーを使用する必要があります。

-vsテストランナーがnunitを実行できるようにする拡張マネージャーを介してNUnitテストアダプター0.94をインストールする必要がありました。

-vstestexplorerウィンドウを使用してテストを実行する必要がありました。

実行中のテストは、実行中のテストをコンテキスト内でラップして、偽の魔法を発生させるように見えます。

于 2013-03-25T05:17:50.623 に答える
2

また、CIサーバーからテストを実行する場合は、コンソールからVS Test Runnerを実行する必要があります。また、nUnitDiscoverer拡張機能を使用することを指定する必要があります。

コマンドは次のようになります。

{ProgramFiles}\Microsoft Visual Studio\11.0\Common7\IDE\CommonExtensions\Microsoft\TestWindow>vstest.console.exe /inIsolation /UseVsixExtensions:true {testsPath}
于 2013-07-18T10:11:30.240 に答える
0

デバッグ中の例外設定をリセットします。

メニューデバッグ->例外->すべてリセット。

デバッグモードでチェックを外して例外設定を変更したら、次のようにします。

「この例外タイプがユーザー未処理の場合は中断する」

これがこの問題の原因です。

于 2014-07-15T16:03:31.000 に答える