C#测试资源

我正在使用Microsoft Visual Studio Test Framework,我的一些测试需要一个xml文件作为输入。 目前我已将它们放在我的TestProject中的Resource目录下,并通过“.. \ .. \ whatever”路径名称访问它们。 我希望在使用测试资源文件时提供良好实践建议,因为我希望在所有这些情况下重用我的测试 – 直接来自VS 2010 – 在我的服务器上构建过程中 – 在透明的持续集成环境中(和简单的方式。

首先,我通常会尝试在测试期间减少依赖文件系统的需要(通过为文件系统引入某种抽象,以便可以模拟文件系统访问)。

如果那是不可能的,我将这些文件包含在测试项目中,名为TestData的子文件夹或类似文件中。 然后我将“复制到输出目录”设置为“始终复制”,以便该文件包含在输出中,并且位于与测试程序集相关的已知位置(无论构建是否在Visual内部完成) Studio或构建服务器)。 只要没有正在测试的代码正在修改文件,但只需要它们来读取数据,这种方法就可以正常工作。

我建议从以下答案的方法。 这是一个类似的问题。 此方法使用DeploymentItem属性,也在进行数据驱动unit testing时使用。

我在我的一个集成测试中做了类似的事情; 我以与你相同的方式解决了它。 只要您的文件被检入源代码控制,并使用相对路径(它看起来像你),它应该按预期工作。

我们正在使用TFS2010进行CI。 所有输出文件都放在Binaries文件夹中。 对于像XML这样的配置资源,我们使用Copy来输出目录选项作为Copy always。 因此它将始终放在输出目录中。