2012-10-04 1 views
0

테스트 케이스와 연관된 testcaseresult가 있는지 확인하기 위해 쿼리를 보내고 있습니다. 나는 이것을 사용하고 있습니다 :...랠리 (Java) : 이미 테스트 케이스에 테스트 코드가있는 경우 testresult를 추가하고 싶지 않습니다.

QueryRequest c = new QueryRequest("testcaseresult"); 
    c.setFetch(new Fetch("testcase")); 
    c.setQueryFilter(new QueryFilter("testcase", "=", testCaseRef)); 
    QueryResponse cc = r.query(c); 

// 문자열 testresultRef = cc.getResults() 수 (0) .getAsJsonObject() ("_ REF") 얻을 toString를();

지금까지 testcaseresult가없는 경우에만 새 testcaseresult를 만들고 싶습니다. 쿼리를 사용하여 어떻게 처리 할 수 ​​있습니까? 감사합니다.

답변

0

감사합니다 마크 : 당신은 심판이 있고, 아마도 또한 테스트 케이스 된 JSONObject을 가지고 있기 때문에, 당신은 당신이 부모의 TestCase의 FormattedID에 조회 할 경우 다음과 같은 일을 할 수 있습니다. 그건 의미가 있습니다. 그러나 나는 아래와 같이 다른 방법을 발견했다 :

try{ 
    QueryRequest c = new QueryRequest("testcaseresult"); 
    c.setFetch(new Fetch("testcase")); 
    c.setQueryFilter(new QueryFilter("testcase", "=", testCaseRef)); 
    QueryResponse cc = r.query(c); 
    String testresultRef = cc.getResults().get(0).getAsJsonObject().get("_ref").toString(); 
} catch(IndexOutOfBoundsException e){ 
    //Create a testcaseresult here. 
} 

나는 try-catch 블록을 사용했다. try 블록에서 테스트 결과를 쿼리합니다. 이 메소드가 IndexOutofboundexception을 던지면 (자), 그러한 테스트 결과가없는 것을 나타냅니다. 이 경우 catch 블록에서 새 테스트 결과를 만들 수 있습니다.

1

추적 조회를 수행하는 데 올바른 길을 가고 있다고 생각합니다. 그러나 Ref에서는 쿼리 할 수 ​​없습니다.

// Query for Test Case to which we want to add results 
    QueryRequest testCaseRequest = new QueryRequest("TestCase"); 
    testCaseRequest.setFetch(new Fetch("FormattedID","Name")); 
    testCaseRequest.setQueryFilter(new QueryFilter("FormattedID", "=", "TC4")); 
    QueryResponse testCaseQueryResponse = restApi.query(testCaseRequest); 
    JsonObject testCaseJsonObject = testCaseQueryResponse.getResults().get(0).getAsJsonObject(); 
    String testCaseRef = testCaseQueryResponse.getResults().get(0).getAsJsonObject().get("_ref").toString(); 
    String testCaseFormattedID = testCaseQueryResponse.getResults().get(0).getAsJsonObject.get("FormattedID").toString(); 

    // Query for Test Case Results that are associated to this particular Test Case 
    QueryRequest testCaseResultsRequest = new QueryRequest("TestCaseResult"); 
    testCaseResultsRequest.setFetch(new Fetch("Build","TestCase","Verdict","FormattedID")); 
    testCaseResultsRequest.setQueryFilter(new QueryFilter("TestCase.FormattedID", "=", testCaseFormattedID)); 
    QueryResponse testCaseResultResponse = restApi.query(testCaseResultsRequest); 
    int numberTestCaseResults = testCaseResultResponse.getTotalResultCount(); 
+0

특정 개체를 읽으려는 경우 쿼리가 아닌 쿼리를 사용할 수도 있습니다 ... –

+0

감사 표시. 그건 의미가 있습니다. 나는 그러나 다른 길을 찾았다. try-catch 블록을 사용했습니다. try 블록 및 testresultRef = cc.getResults() .get (0) .getAsJsonObject(). get ("_ ref"). toString(); 나에게 IndexOutofboundexception을 주면, 그것은 그러한 testcaseresult가 없다는 것을 의미한다. 이 경우 catch 블록에 testcaseresult를 만들 수 있습니다. – hariszhr