我发送一个查询来检查是否存在与测试用例关联的testcaseresult。我正在使用这个:
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();
我想创建一个新的testcaseresult只有到目前为止测试用例中没有testcaseresult。我该如何使用查询来做到这一点? 谢谢。
答案 0 :(得分: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();
答案 1 :(得分: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块中创建一个新的测试结果。