在Visual Studio和SVN中组织“示例测试文件”

时间:2011-07-03 00:59:37

标签: visual-studio svn integration-testing

我的问题是关于测试文件,我指的是我的一些自动化测试依赖的非代码文件(* .xml,* .xls,* .jpg等)。因此,我将使用 示例测试文件 ,不要与测试文件混淆,这意味着包含测试的代码文件。

我的大多数自动化测试都是经过单元测试,但我也在一个项目(MyApp.Tests.Integration)中进行了一些集成测试,以验证与外部依赖项交互的类的行为。

我的示例测试文件集合包含在我的解决方案中名为MyApp.Tests.TestFiles的另一个项目中。每个文件都有一个“内容”的构建操作,并且在其属性中设置了“如果更新则复制”。

MyApp.Tests.TestFiles

当我运行我的测试时,构建了解决方案并将文件复制到我的输出目录“bin \ Debug”,我的集成测试在那里引用它们。

引发这个问题的问题是我一直在将我的示例测试文件提交到我的svn存储库,该存储库与我的代码一起在线托管,存储量有限。这些文件占用了存储库中过多的空间。我已经重建了存储库并将所有样本测试文件减少到最小尺寸。

在大多数情况下,样本测试文件不太可能发生变化,因此我希望它们可以通过工作副本从我的存储库中检出,只要我可以重建MyApp,就没有理由让它们处于版本控制之下。 Tests.TestFiles \ TestFiles目录结构,用于运行测试。

这就是场景,我希望得到以下几点的答案:

  • 有没有更好的方法来处理这些文件?
  • 将这些文件放在我的解决方案之外的某个地方会更好吗?
  • 我可以在svn存储库中保留所有必需的文件,但不能在版本控制下吗?
  • 了解更多有关MSBuild的信息对我有帮助吗?

1 个答案:

答案 0 :(得分:0)

我怀疑是否会就组织事物的“最佳”方式达成一致。我知道在我的SCM系统中,我通常希望有一个文件夹,其中包含可部署代码和测试代码的文件夹。假设我正在构建Widget,我有一个叫做MyLibrary的dll。然后文件夹Widget将有一个名为MyLibrary的文件夹和一个名为MyLibrary_test的文件夹。在VS中,我做同样的事情,并将我的测试项目保存在与可部署项目相同的解决方案中。我独自工作,所以更大的团队可能会发现其他组织风格更合适。

我将测试代码视为可部署的源代码。它在源代码管理系统中。 SVN保留差异文件,因此保留测试文件的版本副本并不昂贵。 SVN甚至试图保持二进制的增量,但有时候doesn't work out as well as one mighthope。我不相信SVN旨在保留源文件的唯一最新副本。 “三角洲”方法效果不佳。第一次意外地对测试文件进行更改时,您希望可以返回并获取lat工作版本。