当前位置:  开发笔记 > 编程语言 > 正文

如何获得"复制到输出目录"以使用单元测试?

如何解决《如何获得"复制到输出目录"以使用单元测试?》经验,为你挑选了4个好方法。

当我在执行测试之前构建单元测试项目时,测试输出被复制到TestResults文件夹,然后执行测试.我遇到的问题是并非Debug/bin目录中的所有文件都被复制到TestResults项目中.

如何将复制到Debug/bin目录的文件也复制到TestResults文件夹?



1> Mark Cidade..:

执行此操作的标准方法是在文件中指定部署项.testrunconfig,可以通过Visual Studio" 测试"菜单或" 解决方案项目"文件夹中的" 编辑测试运行配置"项进行访问.


您可能必须关闭解决方案(甚至是Visual Studio)并在此更改生效之前重新打开
在VS2010中,这是:Test/Edit Test Settings/local,然后在列表中选择"Deployment",选中"Enable ..."框并添加文件.
如果在代码中使用[DeploymentItem]属性,则无需在对话框中指定文件 - 请参阅下面的@ tomfanning的代码.

2> 小智..:

您可以指定部署属性,如下所示的示例; 此外,您还需要设置"内容"和"复制如果更新"属性(没有关于以后设置的文档,但您已设置这些以使其工作.

[TestMethod]
[DeploymentItem("mytestdata.xml")]
public void UploadTest()
{



}


你仍然需要启用它.正如Mercel在评论中写道,在VS2010中,这是:测试/编辑测试设置/本地,然后在列表中选择"部署",选中"启用..."框.
效果很好.我实际上认为这是更好的方法和答案,因为它在testmethod上方记录了所需的文件.

3> tomfanning..:

我必须打开"启用部署",Test -> Edit Test Settings -> Local -> Deployment才能使[DeploymentItem]属性生效.



4> GraehamF..:

根据您的需要,所有三个答案都是正确的.

添加要在.testrunco​​nfig中部署的文件(VS2010 中的.testsettings)会将所有这些文件复制到每个测试输出文件夹,即使是隔离运行的不相关测试也是如此.如果运行一个测试,则会将.testssettings部署部分中列出的所有测试数据文件复制到测试输出文件夹中.

在我的测试中,我需要将预期的XML文件复制到测试输出文件夹,以与实际的测试输出XML进行比较.我使用DeploymentItem属性仅复制与正在运行的测试相关的XML文件.在VS2010中,我必须在.testsettings文件中启用部署(但不添加任何路径),然后引用相对于DeploymentItem中的TestProject的XML文件路径.

希望这可以帮助.


我的问题是这里提到的相对路径,我认为Xml应该在测试所在的目录中,但它需要在项目根目录中,或者以它所在的目录开头.
推荐阅读
夏晶阳--艺术
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有