GoldenFiles测试和TFS服务器工作区

时间:2015-10-30 09:08:02

标签: c++ visual-studio testing tfs

我们的产品(C ++ windows应用程序,作为测试框架的Google Test,作为IDE的VS2015)具有许多基于文件的外部产品接口,即我们生成一个文件,然后将其导入外部产品。为了测试这些接口,我们选择了一种黄金文件方法:

  1. 调用生成接口文件的代码,保存生成的文件供以后引用(这是我们的黄金文件 - 我们假设接口代码的当前状态是正确的。)
  2. 将黄金文件提交到TFS存储库。
  3. 更改接口代码。
  4. 调用代码,将生成的文件与相应的黄金文件进行比较。
  5. 如果文件相同,则测试通过(更改是重构)。否则,
  6. 启用刷新模式,确保调用接口代码后文件覆盖黄金文件。
  7. 调用界面代码(从而刷新黄金文件)。
  8. 调查VS团队资源管理器中的传出更改。如果我们的代码更改从步骤3开始按照需要进行更改,则提交代码更改和黄金文件。否则,请返回步骤3.
  9. 这种方法对我们很有用,但它有一个缺点:如果我们使用本地工作空间,VS只能识别黄金文件已经改变(从而允许我们调查更改)。如果我们使用服务器工作区,以编程方式从黄金文件中删除只读标志并如上所述刷新它们,VS仍然无法识别文件已更改。

    所以我的问题是:有没有办法让我们的黄金文件测试方法适用于服务器工作区,例如告诉VS有些文件已经改变了吗?

1 个答案:

答案 0 :(得分:1)

我可以想到两种方式。

第一种方法是运行tf checkout而不是删除只读属性。 这具有内在风险,因为可能无意中检入生成的文件;这应该通过限制这些文件的签入权限来防止。此外,您可能需要运行tf undo来清理本地状态。

另一种方法是将黄金文件映射到不同的目录中,并使用本地diff工具,而不是依赖Visual Studio内置工具。这比其他解决方案风险更小,但可能很麻烦。不要忘记您可以“克隆”工作区(例如Import Visual Studio TFS workspaces)。