Java 使用rally wsapi v2.0向测试用例添加标记的正确方法

Java 使用rally wsapi v2.0向测试用例添加标记的正确方法,java,rally,Java,Rally,我不确定这一行: //this will query for the tag, if not found it will create the tag. ChkTag(r, wspace_ref, projref, tagx); QueryRequest tg = new QueryRequest("Tag"); tg.setWorkspace(wspace_ref); tg.

我不确定这一行:

           //this will query for the tag, if not found it will create the tag.
            ChkTag(r, wspace_ref, projref, tagx);

            QueryRequest tg = new QueryRequest("Tag");
            tg.setWorkspace(wspace_ref);
            tg.setProject(projref);
            tg.setQueryFilter(new QueryFilter("Name", "=", tagx));
            QueryResponse resp = r.query(tg);
            if(resp.wasSuccessful()&&resp.getTotalResultCount()==1){
                System.out.println("The tag: "+tagx+" is found.");
            } else {
                System.err.println("The tag wasn't found for this testcase.\n"
                        + "ChkTag() method was run earlier which should have created the tag. something weird is going on...");
            }

            //Now adding the tag to the test case
            JsonArray tiger = new JsonArray();
            tiger.add(resp.getResults().get(0));

            //System.out.println("Updating testcase tags...");
            JsonObject updatedtesttag = new JsonObject();
            updatedtesttag.add("Tags", tiger);

            UpdateRequest updatetag = new UpdateRequest(ref_testcase, updatedtesttag);
            UpdateResponse updatetagresp = r.update(updatetag);

            if(updatetagresp.wasSuccessful())
                System.out.println("Tag successfully added to the test case");
        }else{
            System.out.println("Tag for this testcase is Null...\nSkipping Tag...");
        }

这行代码是要将testcase重置为只有这一个标记,还是将这一个标记附加到testcase的现有标记列表中?我不想丢失现有的测试用例标记。

在这个项目中,这样做的能力是一个长期悬而未决的问题:

昨天我有一些额外的时间,所以我实现了编写集合端点的功能,并发布了工具包的新版本(2.2.1)

下面是一个做你想做的事情的例子:

tiger.add(resp.getResults().get(0));
注意:您也可以使用updateCollection方法从集合中删除项


此新功能仅将WSAPI v2.0中的可写集合终结点包装在一起,如下所述:

此功能在本项目中是一个长期悬而未决的问题:

昨天我有一些额外的时间,所以我实现了编写集合端点的功能,并发布了工具包的新版本(2.2.1)

下面是一个做你想做的事情的例子:

tiger.add(resp.getResults().get(0));
注意:您也可以使用updateCollection方法从集合中删除项


这项新功能只是在WSAPI v2.0中包装了可写集合端点,如下所述:

您在上面所做的肯定会替换整个集合。让我试着挖掘一个使用JavaAPI向集合添加项的示例……然后根据我的理解,我必须从testcase中查询标记,并保留标记(jsonarray)。然后将我的新标记添加到json数组中,最后用它更新testcase。是这样吗?这会起作用,但可能会更慢和/或需要更多代码。您应该能够按照WSAPI文档中的描述添加到标记集合中:虽然我找不到任何代码示例,但是…事实证明,我上面描述的内容在现有工具包中是不可能的,所以我发布了一个新版本。请参阅下面的答案+示例…您在上面所做的肯定会替换整个集合。让我试着挖掘一个使用JavaAPI向集合添加项的示例……然后根据我的理解,我必须从testcase中查询标记,并保留标记(jsonarray)。然后将我的新标记添加到json数组中,最后用它更新testcase。是这样吗?这会起作用,但可能会更慢和/或需要更多代码。您应该能够按照WSAPI文档中的描述添加到标记集合中:虽然我找不到任何代码示例,但是…事实证明,我上面描述的内容在现有工具包中是不可能的,所以我发布了一个新版本。请参阅下面的答案+示例。。。。