28

多数のネイティブ C++ テスト プロジェクトを含む Visual Studio 2012 ソリューションがあります。[テスト エクスプローラー] タブを使用して、Visual Studio 2012 内からこれらすべてを正しく正常に実行できます。

ただし、コマンドラインから実行すると、テストを実行できません。

ドキュメントに従って、次のコマンドラインを実行しています

mstest /testcontainer:PathToTestProject\Win32\Release\testproject.dll

私も走る必要があります

mstest /testcontainer:PathToTestProject\x64\Release\testproject.dll

コードの 64 ビット バージョンのテスト用。

これらのコマンド ラインを実行すると、次のエラー メッセージが表示されます。

Microsoft (R) Test Execution Command Line Tool バージョン 11.0.50727.1 Copyright (c) Microsoft Corporation. 全著作権所有。

PathToTestProject\Win32\Release\testproject.dll を読み込んでいます... PathToTestProject\Win32\Release\testproject.dll テスト コンテナー PathToTestProject\Win32\Release\testproject.dll' またはその依存関係の 1 つを読み込めません。テスト プロジェクト アセンブリを 64 ビット アセンブリとしてビルドすると、ロードできません。テスト プロジェクト アセンブリをビルドするときは、プラットフォームに [任意の CPU] を選択します。64 ビット プロセッサで 64 ビット モードでテストを実行するには、[ホスト] タブでテスト設定を変更して、32 ビット プロセスでテストを実行する必要があります。エラーの詳細: ファイルまたはアセンブリ 'file:///c:\PathToTestProject\Win32\Release\testproject.dll' またはその依存関係の 1 つを読み込めませんでした。モジュールには、アセンブリ マニフェストが含まれている必要がありました。

コードはネイティブ C++ で、Win32 プラットフォーム用と x64 プラットフォーム用の 2 つのビルド構成があります。AnyCPU プラットフォーム構成を使用できません。コマンドラインからテストを実行できるようにするために、ここで何が欠けていますか?

4

1 に答える 1

55

多くの検索の後、私は最終的に、さまざまなテスト プロジェクト タイプとの mstest の互換性を示す非常に隠されmsdn ドキュメント ページを発見しました 。そして、mstest はネイティブ ユニット テストと互換性がないことが判明しました (msdn が見つけやすい場所にこれを文書化するのは良いことです)。代わりに、ネイティブ ユニット テスト プロジェクトの msbuild の代わりに、Visual Studio テスト実行 (vstest.console.exe) を使用する必要があります。

例えば

vstest.console.exe /Platform:x64 PathToTestProject\x64\Release\testproject.dll
于 2013-02-28T10:38:01.400 に答える