(环境:VSTS2010 使用 IronPython 和 TFS SDK)
工作流程 #1 以下工作流程的行为符合我的预期:
- 创建一个新的测试运行
- 添加测试点
- 保存测试运行
我的预期行为:测试运行与测试点一起保存。
观察到的行为:符合我的预期行为 - 已通过 testrun.QueryTestResults() 调用验证。
工作流程 #2 以下工作流程的行为与我预期的不同:
- 创建一个新的测试运行
- 添加测试点
- 保存测试运行
- 添加另一个测试点
- 保存测试运行
我的预期行为:测试运行应该与测试点一起保存。
观察到的行为:第一个测试点被保存。初始保存后的所有其他测试点都不会保存。没有错误抛出或来自 SDK 的任何反馈指示失败。
工作流程 #3 同样,以下工作流程的行为与我预期的不同:
- 通过 id testManagementService.QueryTestRuns("SELECT * FROM TestRun WHERE TestRunId=%s" % testrunId) 获取现有的测试运行
- 添加测试点
- 保存测试运行
我的预期行为:测试运行应该与测试点一起保存。
观察到的行为:未添加添加的测试点。没有错误抛出或来自 SDK 的任何反馈指示失败。
谁能解释为什么观察到的行为与我在工作流 #2 和 #3 上的预期行为不同?
更新 (2012-11-16 12:00 CST)
回答(编辑)我自己的问题,因为挖掘这个问题并不简单。
在执行 msdn.microsoft.com 搜索后,我在http://blogs.msdn.com/b/nidhithakur/archive/2011/04/08/importing-testcase-results-to-mtm.aspx找到了以下段落(搜索术语:itesrun 添加测试点失败)。
为了能够将结果添加到此测试计划中,请在测试计划中创建一个新的测试运行。映射字典中存在的测试点并添加到此测试运行中。理想情况下,您应该能够在将测试点添加到运行时添加结果,但 run.Save() API 现在仅适用于单个 Save。因此,您需要添加所有测试点,保存测试运行,然后遍历运行集合以单独添加结果。为了获得更好的性能,请在添加/更新所有结果后保存一次结果集合。
所以这似乎是 VSTS2010 的一个限制。您无法在第一次测试运行保存后添加测试点。