我的组织正在重新调整我们的 QA 流程,并购买了测试管理工具 TestRail。我们正在将所有现有的 UI 自动化测试导入 TestRail,以便我们可以创建测试计划并在每个测试的基础上存储历史测试运行数据。在 TestRail 中,您可以进行测试运行,其中包含完整测试库的子集,帮助您测试功能,而无需运行所有测试。
我们的测试库是在 Visual Studio 中使用 Selenium 开发的,每个测试都设置为 NUnit 单元测试。每个测试都有一个 NUnit 属性“tr_id”,它映射到它的 TestRail 测试用例的标识符。
我正在通过 TestRail API 开发一个集成,它将每个测试的测试结果推送到 TestRail,但它目前的工作方式是,所有测试都将运行,甚至是不在给定 TestRail 测试计划中的测试。通过 TestRail API,我能够提取给定测试计划中所有测试的列表,并将所有测试 id 存储到一个列表中(然后与 Selenium NUnit 测试中的 tr_id 相当)。
我最期待回答的问题是,是否有任何方法可以获取所有 NUnit 测试及其属性,然后我可以解析这些测试以创建要运行的测试子集,同时忽略不属于 TestRail 的所有其他测试测试计划。
我遇到了一个问题,即我们如何使 UI 框架仅运行在测试运行中的测试,这些测试在 TestRail 中确定的测试计划中确定。
我想要做的是以下(伪代码):
listA = TestRail.GetTestsIdsInPlan(planA);
listB = NUnit.GetAllTestsIds(); //from custom property tr_id
listC = empty list;
foreach(testId id in listA)
{
if (listB.Contains(id))
{
listC.Add(id);
}
}
通过这样做,我将运行 listC 中的所有测试,因为 id 与测试运行中的测试匹配。
任何帮助深表感谢!