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

これまでテストケースに testcaseresult がない場合にのみ、新しい testcaseresult を作成したいと考えています。クエリを使用してそれを行うにはどうすればよいですか? ありがとうございました。

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 に答える