DeploymentItem
MSTest単体テストで属性を使用すると、XSLファイルをテストアセンブリと同じディレクトリにコピーするのに問題があります。この質問に対して選択した回答に従いました。コピーする必要のあるファイルの[出力ディレクトリにコピー]が[常にコピー]に設定されています。ProjectDir \ binディレクトリ(ターゲットディレクトリ)を確認すると、コピーしたいファイルがDLLやPDBと一緒に実際にそこにあります。
次の設定でいくつかの単体テストがあります。
private const string DLL = "Service.dll";
private const string XSL_PATH = "transform.xsl";
[TestInitialize]
public void InitializeTest()
{
Assert.IsTrue(File.Exists(DLL)); // passes
}
[TestMethod]
[DeploymentItem(DLL)]
[DeploymentItem(XSL_PATH)]
public void XmlToResultsTest()
{
Assert.IsTrue(File.Exists(XSL_PATH)); // fails
}
MSTestのTestResults\特定のTestRun\Outディレクトリを確認すると、DLLとPDBが表示されますが、XSLファイルが存在しないため、XSLテストは失敗します。私が知りたいのは、Visual Studioに明示的にコピーするように指示した場合でも、XSLファイルがDLLおよびPDBと一緒にコピーされない理由DeploymentItem
です。