C#测试资源

时间:2011-04-07 13:11:42

标签: c# unit-testing

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

4 个答案:

答案 0 :(得分:10)

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

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

答案 1 :(得分:2)

我建议采用以下answer的方法。这是一个类似的问题。 这种方法使用了DeploymentItem属性,也用于进行数据驱动单元测试时。

答案 2 :(得分:0)

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

答案 3 :(得分:0)

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