2013-02-26 25 views
23

私は多くのネイティブC++テストプロジェクトを持つVisual Studio 2012ソリューションを用意しています。 [テストエクスプローラ]タブを使用して、これらのすべてをVisual Studio 2012内から正しく正常に実行できます。Visual Studio 2012のネイティブC++テストに対してコマンドラインからmstestを実行

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

私は

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

次のコマンドラインを実行しているされているドキュメント以下の私は、コードの64ビットバージョンのテストのために

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

を実行する必要があります。

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

Microsoft(R)Test Executionコマンドラインツールバージョン11.0.50727.1 Copyright(c)Microsoft Corporation。全著作権所有。 Win32の\リリース\ PathToTestProject \ Win32の\リリース\ testproject.dll ... PathToTestProjectをロード

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

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

答えて

48

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

vstest.console.exe /Platform:x64 PathToTestProject\x64\Release\testproject.dll 
+1

例えば

ただ...ありがとう – AndreiM

関連する問題