我想在测试中添加部署项。据我所知,到目前为止,路径与解决方案有关。我希望路径是相对于项目的。否则,项目不能用于多种解决方案。 如何将部署项配置为相对于项目因变量?
我希望得到类似的内容:[DeploymentItem(@"$(ProjectDir)..\..\bin\$(Configuration)")]
但我找不到任何文档,但它似乎不起作用。
我刚做了一个小测试。只是简单的向导代码和一个部署项:
[TestMethod]
[DeploymentItem("stdafx.cpp")]
void TestMethod1()
{
Assert::Fail();
};
并且trx文件显示以下行:
警告:测试运行部署问题:无法获取测试'TestProject1.UnitTest1.TestMethod1'指定的部署项'stdafx.cpp'的文件:System.IO.FileNotFoundException:找不到文件'd:\ Development \项目\ deploymentItemTest \ stdafx.cpp”。 System.IO.FileNotFoundException:找不到文件'd:\ Development \ Projects \ deploymentItemTest \ stdafx.cpp'。 文件名:'d:\ Development \ Projects \ deploymentItemTest \ stdafx.cpp'
这意味着相对于解决方案目录(位于... \ depoymentItemTest中)而不是项目目录(位于... \ depolymentItemTest \ TestProject1中)搜索“stdafx.cpp”
答案 0 :(得分:3)
我知道这是一个老问题,但我的回答可能对其他人有所帮助。 我能够通过两个简单的步骤来解决这个问题:
在测试项目上创建以下构建事件:
xcopy /I /S /Y "$(TargetDir)*.*" "$(SolutionDir)\bin"
这会将项目文件夹的所有内容(包括子目录)复制到相对于解决方案的文件夹“bin”。
将以下DeploymentItem添加到测试类:
[DeploymentItem ("bin")]
这会将所有bin concontes复制到测试文件夹
可以使用构建事件和DeploymentItem
中的其他过滤器来细化(如果需要)此机制答案 1 :(得分:1)
让测试设置将文件复制到Environment.CurrentDirectory
。