0

Java を使用して特定のプロジェクトの Passed/No Run などの ALM V11 (QC) テスト スクリプトの詳細にアクセスしようとしていますが、null になっています。誰かがこれについて私を助けてくれますか?

私が得るエラー:

java.lang.NullPointerException
at com.testpack.HPTest2.main(HPTest2.java:53)

接続に使用するコード

        ITDConnection itd=ClassFactory.createTDConnection();
        System.out.println("Test1.1:"+ itd.connected());
        itd.initConnectionEx(url);
        System.out.println("Test1:"+ itd.connected());
        itd.connectProjectEx(domain,project,username,password);


        ITestFactory testFactory;
        //ITSTest2 testFactory;
        ITDFilter2 filterF;
        IList executinList;

        testFactory=(itd.testFactory()).queryInterface(ITestFactory.class);
        //testFactory=(ITestFactory)itd.testFactory().queryInterface(ITestFactory.class);
        filterF=testFactory.fields().queryInterface(ITDFilter2.class);
        String query="\"Passed\"";
        filterF.filter("TC_STATUS",query);
        executinList=filterF.newList();

私が持っているVBScriptを比較してこれを試していました

Set tdc = CreateObject("tdapiole80.tdconnection")
tdc.InitConnection serverName, domainName
tdc.ConnectProject projectName, projUserName, projPassword

'Get the test factory filter
Set TestSetFact = tdc.TSTestFactory
'TestSetFact.AddItem()
Set TestSetFilter = TestSetFact.Filter
stemp = ApplicationName
appsplit = Split(ApplicationName, "or")

irowtemp = 18
'----------------------------------------------------

'--------------------------------
For iLoop = 0 To UBound(appsplit)
    TestSetFilter.Filter("TS_USER_06") = appsplit(iLoop)

    If initiativeName <> "" Then
        TestSetFilter.Filter("TS_USER_04") = initiativeName
    End If
    TestSetFilter.Filter("TC_STATUS") = "Passed"


    Sheet1.Cells(irowtemp, 2).Value = Trim(appsplit(iLoop))
4

1 に答える 1

3

Com4jObject.queryInterface() メソッドは、ラップされた COM オブジェクトがそのタイプでない場合、null を返します。

コードを台無しにしたのはおそらくオートコンプリートだけですが、使用する必要があります

filterF=testFactory.filter().queryInterface(ITDFilter2.class);

fields() の代わりにフィルターを取得します。

于 2013-04-23T14:05:18.900 に答える