2010-06-17 69 views
3

我目前正在与TFS尝试,我真的很喜欢它。
一个小问题,关于测试文件:TFS中,测试文件的测试和布局(在哪里)

我有一些演示TXT目录,图像,显示目录......这些都是在测试中使用,所以到现在为止,该路径被硬编码到一个文件夹在我的电脑上。现在我需要改变这一点,当然,TFS也需要访问这些文件。

我的想法是把他们我的解决方案的文件夹内,我目前大致有这样的结构:

  • 解决方案文件夹
    • mysol.sln
    • SomeProjectDir
    • OtherProjectDir
    • _LIB外部的.dll
    • _DEMO_FILES为TES吨文件

整个溶液文件夹是源控制之下。 你会这样做吗?如何在单元测试中获得文件夹“真实”路径的最佳优雅方式?使用执行路径切除其余部分? 测试文件是否属于源代码管理?

感谢您的任何输入,
克里斯

编辑:除了在答案中给出的提示,请注意,与测试有一些缺陷与此有关。测试在不同的文件夹中执行(通常以一些时间码命名),测试文件不会自动复制到那里。即使他们被设置为始终复制。

的解决方案是通过使用在单元测试称为DeploymentItem属性,或者,在我看来好得多手动添加文件,调整Local.testsettings和添加的文件夹在那里。请记住,文件夹本身不会被添加,所以你需要做的是一个水平..

你会明白我的意思是,如果你尝试。或者搜索DeploymentItem on google

回答

4

测试文件是您项目的一部分,所以没有理由将它们排除在版本控制系统之外。您应该向版本控制系统提交构建,测试和运行系统所需的所有内容,包括第三方库,配置文件,测试文件,甚至可以证明的文档。请注意,这些东西中的大部分应该也是Visual Studio解决方案的一部分。

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

+0

谢谢你,是这么认为的......如何包括空文件夹的任何提示。我认为VS不会将它们复制到输出目录,我可以在测试之前删除一个placeholder.txt。我需要空文件夹进行一些测试(测试空文件夹不会产生问题:-) – 2010-06-17 11:38:46

+0

或者您可以使用后生成脚本来创建文件夹。 – Grzenio 2010-06-17 11:43:37

+0

是的,也是一个好主意......我想我甚至会在测试设置中做到这一点。我不喜欢构建脚本,特别是在使用TFS时。目前,一切正常,不知道它如何与脚本行为,之前有一些问题(脚本失败,构建被标记为失败,等等......)我认为我更喜欢失败的测试.. – 2010-06-17 11:46:00