我编写了以下代码以从QC检索测试用例的列表,但是tsTestFactory为空,而当我评估qcConnect.testSetFactory()时,它将返回Com4j对象。

我在这里做错了什么

ITestSetFactory tsFactory = (qcConnect.testSetFactory()).queryInterface(ITestSetFactory.class);
ITestSetTreeManager tsTreeMgr = (qcConnect.testSetTreeManager()).queryInterface(ITestSetTreeManager.class);

ITestSetFolder tsFolder = (tsTreeMgr.nodeByPath(nodePath)).queryInterface(ITestSetFolder.class);
IList its1 = tsFolder.findTestSets(testSetName, false, "");

Iterator itr = its1.iterator();
while (itr.hasNext())
{
    Com4jObject comObj = (Com4jObject) itr.next();
    ITestSet sTestSet = comObj.queryInterface(ITestSet.class);
    System.out.println(sTestSet.name());
    System.out.println(sTestSet.id());

    ITestFactory tsTestFactory = (qcConnect.testSetFactory()).queryInterface(ITestFactory.class);
    ITSTest sTSTest = (tsTestFactory.item(sTestSet.id())).queryInterface(ITSTest.class);

    System.out.println(sTSTest.name());
}

最佳答案

TestFactory与TestSetFactory不同,因此您不能这样做:

ITestFactory tsTestFactory =(qcConnect.testSetFactory())。queryInterface(ITestFactory.class);

尝试使用qcConnect.testFactory而不是qcConnect.testSetFactory。

10-07 17:31