当前位置:  开发笔记 > Android > 正文

MSTest复制文件以测试运行文件夹

如何解决《MSTest复制文件以测试运行文件夹》经验,为你挑选了3个好方法。

我有一个测试,需要读入XML文件然后进行解析.如何将此文件每次复制到测试运行文件夹中?

XML文件设置为"如果更新则复制"和编译模式为"无"(因为它不是真正可编译的东西)



1> Preet Sangha..:

使用DeploymentItem属性

using System;
using System.IO;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using CarMaker;

namespace DeploymentTest
{
    [TestClass]
    public class UnitTest1
    {
        [TestMethod()]
        [DeploymentItem("testFile1.xml")]
        public void ConstructorTest()
        {
            string file = "testFile1.xml";
            Assert.IsTrue(File.Exists(file), "deployment failed: " + file +
                " did not get deployed");
        }
    }
}


继Thomas的评论之后,RelativePathRoot的默认值是解决方案文件夹,所以如果你的解决方案看起来像这样(..\SolutionFolder\TestProject\TestData\aFile.txt)你的DeploymentItem看起来像这样..([DeploymentItem(@) "TestProject\TestData\aFile.txt","TestData")])..并且您将使用此参考测试中的文件..(string file = @"TestData\aFile.txt";)
不要忘记,如果您的子文件夹中的项目也包含在部署子目录中的项目[DeploymentItem("SubFolder\testFile1.xml","SubFolder")]
DeploymentItem属性也可以在类级别指定,以影响类中的每个测试.
我所看到的大多数帖子都没有提到,如果你不能让它工作,你可能需要选中"启用部署"复选框,如果你去测试 - >编辑测试设置 - > local(local.testsettings) - >部署选项卡.我刚刚做了这个,然后DeploymentItem工作正常.
[VS2010的DeploymentItemAttribute文档](http://msdn.microsoft.com/en-us/library/ms245570.aspx):_此属性可以在测试方法或测试类上指定._
很好的答案,帮助我做了一些功能测试.
但是类级别const只是那个呃?

2> 小智..:

似乎如果您为解决方案提供TestSettings文件,那么您可以取消选中"启用部署"选项并阻止mstest尝试...TestResults\...\out从不复制您的额外文件的文件夹运行(除非您将它们作为部署选项) .

如果依赖于保留文件夹结构中的额外文件,这也很有用,因为如果使用TestSettings中的Deployment,Add Folder选项,则部署项似乎都直接(平面)复制到临时运行文件夹(out)中(上面的答案表明,如果将每个项目添加为自己的DeploymentItem,则可以保留结构.

对我来说,它直接在Visual Studio中运行良好的测试(即我的结构中的额外文件被测试找到并使用),因为我很久以前就已经创建了一个TestSettings文件(其中包含启用部署未选中),但是在TeamCity时没有运行mstest来运行测试,因为我没有指定应该使用TestSettings文件.

要在Visual Studio中创建TestSettings文件,请右键单击Solution并选择New Item,然后选择TestSettings模板.要在mstest.exe的命令提示符下使用TestSettings文件,请添加选项,/testsettings:C:\Src\mySolution\myProject\local.testsettings (或在TeamCity中添加为具有适当路径的额外命令行选项)



3> Eric Bole-Fe..:

Preet答案用于为单个测试部署项目.如果要在解决方案级别执行此操作,请使用.testrunco​​nfig设置.


VS2010版本:http://msdn.microsoft.com/en-us/library/ms182475%28v=VS.100%29.aspx
推荐阅读
jerry613
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有