2013-03-27 4 views
0

Java를 사용하는 특정 프로젝트에 대해 통과/실행하지 않음과 같은 ALM V11 (QC) 테스트 스크립트 세부 정보에 액세스하려고하지만 null로 표시됩니다. 누군가가 이것에 나를 도울 수 있습니까?Java 및 COM4J를 사용하는 Quality Center V11 스크립트 통계

오류 내가 얻을 :

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(); 

를 연결하는 데 사용하는이 내 내가

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)) 

답변

3

Com4jObject.queryInterface이 VBScript를 비교() 래핑 된 COM 객체가 해당 유형이 아닌 경우 메서드는 null을 반환합니다.

그것은 아마 당신의 코드를 엉망 단 자동 완성,하지만 대신 필드의 필터를 얻으려면

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

를 사용해야합니다().