我在 C# 中使用 OTA API。
如果我有测试用例 ID,如何在 QC 中找到测试。(按测试用例 ID 查找测试)测试可能出现在测试计划中的任何文件夹下。(即在 SUBject 下)。
我在 C# 中使用 OTA API。
如果我有测试用例 ID,如何在 QC 中找到测试。(按测试用例 ID 查找测试)测试可能出现在测试计划中的任何文件夹下。(即在 SUBject 下)。
假设您有一个打开的连接并且知道存在具有该 ID 的测试(例如来自先前查询的结果),您可以执行以下操作:
int testId = 1234;
TestFactory tf = connection.TestFactory;
Test t = tf[id];
对 TestFactory 索引器的调用将引发带有“Item 不存在”的 COMException。如果不存在具有该 ID 的测试。
如果您不确定是否存在具有该 ID 的测试,您可以执行以下操作:
int testId = 1234;
TestFactory tf = connection.TestFactory;
TDFilter filter = tf.Filter;
filter["TS_TEST_ID"] = id.ToString();
List tests = tf.NewList(filter.Text); // List collection is the ALM List, not .NET BCL List.
Test t = (tests.Count > 0) ? tests[1] : null; // ALM List collection indexes are 1-based, and test ID is guaranteed to be unique and only return 1 result if it exists.
您可以在连接上创建过滤器。下面的示例按名称搜索测试,但如果您更改“TS_TEST_ID”上的“TS_TEST_NAME”,您将能够使用测试 ID 进行搜索。
public int findTestCase(TDAPIOLELib.TDConnection connection, string testCaseName)
{
TestFactory tstF = connection.TestFactory as TestFactory;
TDFilter testCaseFilter = tstF.Filter as TDFilter;
testCaseFilter["TS_TEST_NAME"] = testCaseName;
List testsList = tstF.NewList(testCaseFilter.Text);
if(testsList != null && testsList.Count == 1)
{
log.log("Test case " +testCaseName+ " was found ");
Test tmp = testsList[0] as Test;
return (int)tmp.ID;
}
return -1;
}