Rally(Java):如果测试用例中已有一个,我不想添加一个testresult

时间:2012-10-04 14:52:29

标签: java rally testcase

我发送一个查询来检查是否存在与测试用例关联的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。我该如何使用查询来做到这一点? 谢谢。

2 个答案:

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