5

テストに展開項目を追加したいと考えています。私が今まで理解している限り、パスはソリューションに対する相対パスです。パスをプロジェクトからの相対パスにしたい。そうしないと、プロジェクトを複数のソリューションで使用できません。プロジェクト依存変数に関連する配置アイテムを構成するにはどうすればよいですか?

次のようなことを望んでいまし[DeploymentItem(@"$(ProjectDir)..\..\bin\$(Configuration)")]たが、ドキュメントが見つからず、機能していないようです。


ちょっとしたテストをしただけです。シンプルなウィザード コードと 1 つの展開アイテムのみ:

[TestMethod]
[DeploymentItem("stdafx.cpp")]
void TestMethod1()
{
    Assert::Fail();
};

また、trx ファイルには次の行が表示されます。

警告: テスト実行配置の問題: テスト 'TestProject1.UnitTest1.TestMethod1' で指定された配置項目 'stdafx.cpp' のファイルを取得できませんでした: System.IO.FileNotFoundException: ファイル 'd:\Development\Projects\ が見つかりませんでしたdeploymentItemTest\stdafx.cpp'. System.IO.FileNotFoundException: ファイル 'd:\Development\Projects\deploymentItemTest\stdafx.cpp' が見つかりませんでした。ファイル名: 'd:\Development\Projects\deploymentItemTest\stdafx.cpp'

つまり、"stdafx.cpp" は、プロジェクト ディレクトリ (...\depolymentItemTest\TestProject1 内) ではなく、ソリューション ディレクトリ (...\depoymentItemTest 内) に対して検索されます。

4

2 に答える 2

3

これは古い質問であることは知っていますが、私の答えは他の人に役立つかもしれません。この問題は、次の 2 つの簡単な手順で解決できました。

  1. テスト プロジェクトで次のビルド イベントを作成します。

    xcopy /I /S /Y  "$(TargetDir)*.*" "$(SolutionDir)\bin"
    

    これにより、プロジェクト フォルダーのすべてのコンテンツ (サブディレクトリを含む) が、ソリューションに関連するフォルダー "bin" にコピーされます。

  2. 次の DeploymentItem をテスト クラスに追加します。

    [DeploymentItem ("bin")]
    

    これにより、すべてのビンの内容がテストフォルダーにコピーされます

このメカニズムは、(必要に応じて) ビルド イベントと DeploymentItem の両方でフィルターを追加して調整できます。

于 2012-08-24T12:15:29.317 に答える
1

テスト セットアップでファイルを にコピーしますEnvironment.CurrentDirectory

于 2011-09-15T09:02:18.093 に答える