22

Visual Studio 2012のテストスイートからテストを実行しようとすると、次のようになります。

テストに失敗しました-[テストメソッド名]

メッセージ:テストを実行するための実行コンテキストの設定に失敗しました

そして、私のテストは開始されていません(つまり、テストの失敗の原因は、テストメソッドの最初を指している:

ここ->TEST_METHOD([テストメソッド名]){

}

このメッセージはどういう意味ですか、メッセージが表示される原因は何ですか?テストを正しく実行するにはどうすればよいですか?

4

7 に答える 7

23

さらに調査した結果、テスト対象のメソッド(.dll)を含むプロジェクトの「出力ディレクトリ」を変更し、テストプロジェクトライブラリと同じフォルダにないという事実を見落としていることに気付きました。メッセージ:

メッセージ:テストを実行するための実行コンテキストの設定に失敗しました

そのため、テスト対象のメソッドを含む.dllがテストプロジェクトライブラリと同じフォルダーにあることを確認して、実行時にテストプロジェクトが.dllを見つけられるようにすることで、問題を解決しました。

于 2012-11-03T11:24:44.127 に答える
18

私は同じ問題を抱えていましたが、前述の提案では修正されませんでした。私のプロジェクトはいくつかのサードパーティライブラリを使用しており、これらへのパスはVSプロジェクトのコンパイラとリンカーの設定で正しく設定されています。

VSテストエンジンがライブラリを見つけることができなかったことが判明したので、これらのライブラリへのパスをPATH環境変数に追加しました。これで問題が解決しました。

ヒント:VSTest.Console.exeを使用して、コマンドラインから単体テストを実行してみてください。エラーメッセージは、問題をより簡単にデバッグするのに役立ちました。

于 2014-01-08T02:18:26.080 に答える
11

他の答えを探している人にとって、これは必要なすべてのDLLを見つけるのに問題であることがわかりました。上記のアドバイスに従って、テストdllとdllの両方を同じ場所でテストしましたが、それでもこのエラーが発生しました。

私のテストDLLは、ネイティブ環境から、子DLLを見つけることができませんでした。何が欠けているのかは、depends.exeを実行することで理解できます。これらの他のDLLの場所をパスに追加すると問題が解決し、すべてが機能するようになりました。

于 2014-03-17T16:38:12.770 に答える
2

このエラーが発生しました。これは、デバッグDLLを使用していて、デバッグc++ランタイムが見つからなかったためです。デバッグC++ランタイムを同じディレクトリにコピーしたところ、問題は解決しました。

于 2013-06-25T17:37:29.597 に答える
2

プロジェクトにサードパーティのdll(OpenCV)を含めた後、このエラーが発生しました。パスにdllを追加するか、system32ディレクトリにドロップすることはできますが、より良い解決策があります。

テストは、AppXというディレクトリから実行されます。私の場合はここにあります:....... OneDrive \ Documents \ Visual Studio \ Projects \ TutorialOcr \ x64 \ Debug \ OcrTesting \ AppX

そこにdllをドロップしたところ、テストは機能しました。

于 2015-04-25T09:51:39.393 に答える
1

テスト用に作成された.dllは、ビルド先のフォルダーから実行されます。私の場合は「x64\UnitTests\Tests.dll」です。私のアプリケーションの残りの部分は、「x64 \ Debug\App.exe」と「x64\Release\App.exe」にあります。私のアプリケーションは、プロジェクトのルートフォルダにある外部dllに依存しています。これは、デバッグの起動用に指定された「作業ディレクトリ」でもあります。

しかし、テストエクスプローラーのテストランチャーはその設定を無視し、常に作業ディレクトリ「x64 \ UnitTests」でTests.dllを起動し、依存しているdllを見つけることができません。SetCurrentDirectory("..\\..");たとえば、静的依存関係が見つからない場合、dllをメモリにロードすることさえできないため、テストクラスコンストラクターを追加しても問題は修正されません。

UnitTests構成の「出力ディレクトリ」を「$(SolutionDir)」に設定するだけで解決しました。これにより、Tests.dllがルートフォルダーに作成されます。

于 2016-03-22T23:21:36.923 に答える
0

また、テストプロジェクトのライブラリ依存関係の1つとしてデバッグライブラリを誤って使用したため、リリース構成でのみこのエラーが発生していました。(bmannの投稿と同じ問題)

問題の原因となっているライブラリを見つけるために、すべてのテストコードとそのインクルードをコメントアウトし、空のテストを1つ追加し、テストが機能するまで依存関係ライブラリを1つずつ削除しました。

于 2013-09-10T09:50:22.080 に答える