0

我正在发送查询以检查是否存在与测试用例关联的测试用例结果。我正在使用这个:

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

仅当到目前为止测试用例中没有测试用例结果时,我才想创建一个新的测试用例结果。我如何使用查询来做到这一点?谢谢你。

4

2 回答 2

1

我认为您在进行后续查询时走在了正确的轨道上。但是,您无法查询 Ref。但是,由于您有 ref,并且可能也有 TestCase JsonObject,因此您可以执行以下操作,您可以查询父 TestCase 的 FormattedID:

    // 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();
于 2012-10-04T19:38:53.307 回答
0

谢谢马克。这就说得通了。但是我找到了另一种方法,如下所示:

    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 块中创建一个新的测试结果。

于 2012-10-06T07:20:31.287 回答