C# TFS,测试文件的测试和放置(其中)

C# TFS,测试文件的测试和放置(其中),c#,unit-testing,tfs,C#,Unit Testing,Tfs,我目前正在试验TFS,我非常喜欢它。 关于测试文件的一个小问题: 我有一个目录与一些演示文本,图像,目录。。。这些都是在测试过程中使用的,所以到目前为止,路径是硬编码到我计算机上的一个文件夹中的。现在我需要改变这一点,当然,TFS也需要访问这些文件 我的想法是将它们放在我的解决方案的文件夹中,我目前大致有以下结构: 解决方案文件夹 mysol.sln SomeProjectDir 其他项目目录 _外部.dll的库 _测试文件的演示文件 整个解决方案文件夹受源代码管理你会用同样的方法吗?如

我目前正在试验TFS,我非常喜欢它。
关于测试文件的一个小问题:

我有一个目录与一些演示文本,图像,目录。。。这些都是在测试过程中使用的,所以到目前为止,路径是硬编码到我计算机上的一个文件夹中的。现在我需要改变这一点,当然,TFS也需要访问这些文件

我的想法是将它们放在我的解决方案的文件夹中,我目前大致有以下结构:

  • 解决方案文件夹
    • mysol.sln
    • SomeProjectDir
    • 其他项目目录
    • _外部.dll的库
    • _测试文件的演示文件
整个解决方案文件夹受源代码管理你会用同样的方法吗?如何获得文件夹的“真实”路径,以便在单元测试中使用?使用执行路径并删除其余部分测试文件属于源代码管理吗?

感谢您的任何意见,
克里斯

编辑:除了答案中给出的提示之外,请注意测试中存在一些陷阱。测试在不同的文件夹中执行(通常以某个时间码命名),测试文件不会自动复制到该文件夹中。即使它们设置为“始终复制”

解决方案是在单元测试中使用名为DeploymentItem的属性手动添加文件,或者,在我看来,更好的方法是调整Local.testsettings并将文件夹添加到其中。请记住,文件夹本身不会被添加,因此您需要将其添加到更高的级别


如果你尝试一下,你就会明白我的意思。或者在google上搜索部署项测试文件是项目的一部分,因此没有理由将它们排除在版本控制系统之外。您应该向版本控制系统提交构建、测试和运行系统所需的所有内容,包括第三方库、配置文件、测试文件,甚至文档。请注意,这些东西中的大部分也应该是VisualStudio解决方案的一部分


在我的项目中,我通常尝试将所有资源作为嵌入式资源,这样我就不需要找出路径,它们被编译到程序集中。如果由于某些原因我不能这样做,我会让构建将它们复制到输出文件夹(因此在VS中将它们标记为始终复制),然后使用相对路径。

谢谢,我想是这样的。。。关于如何包含空文件夹的任何提示。我认为VS不会将它们复制到输出目录,我可以在测试之前删除一个placeholder.txt。我需要一些测试的空文件夹(以测试空文件夹不会产生问题:-),或者您可以有一个生成后脚本来创建文件夹。是的,这也是一个好主意。。。我想我甚至会在测试设置中这样做。我不喜欢构建脚本,尤其是在使用TFS时。目前,一切都很好,不确定它在脚本中的表现如何,以前有一些问题(脚本失败,构建被标记为失败,等等…)我想我更喜欢失败的测试..酷,到目前为止,在测试设置中创建它实际上是最好的主意——这对于您的同事来说是显而易见的,这些文件夹来自哪里,以及您为什么需要它们!