C#ライブラリのテストにMS unit testing framework
を使用しています。展開するファイルをDeploymentItem attribute
を使用して開く必要があります。ただし、ファイルはテストデプロイメントディレクトリにデプロイされません。
ユニットテストプロジェクトで、TestFile
フォルダーを作成しました。このフォルダーには、a.txt、b.txtなどの複数のファイルがあります。
ユニットテストクラスにDeploymentItem属性を追加しました。しかし、ファイルはコピーされていません。
これが私のコードです。
[TestClass]
[DeploymentItem("TestFile")]
public class CustomLibraryTest
{
public TestContext TestContext { get; set; }
[TestMethod]
[DeploymentItem(@"TestFiles\a.txt")] // THis should deploy a.txt to test deployment directory
{
var path = TestContext.TestDeploymentDir + "a.txt";
// Now when I debug this unit-test, and open path in Explorer,
// a.txt is not present in "TestResults\Deploy_fhafeez 2013-05-28 13_02_37\Out" folder
}
}
私は何を間違っていますか?
私は this thread で2つの可能な解決策を見つけました:
お役に立てれば。
将来の参照のために、VS 2015を使用して気づいたことから-展開項目属性で指定するパスは、ビルド出力(デバッグフォルダー)からの相対パスである必要があります。フォルダ構造が「UnitTesting\TestData\Test.xml」の場合、DeploymentItemはDeploymentItem( "..\..\TestData\Test.xml")である必要があります。この場合、TestDataフォルダをUnitTestingプロジェクトに含める必要はありません。
DeploymentItem属性がまったく同じ方法で設定されていても、一部のテストではコピーが機能しているが最新ではない一連のテストがありました。他のすべてを使い果たした後、私はソリューションに「クリーンソリューション」を実行して再実行し、それは正しくコピーし始めました。 YMMV