最近对Rally C#REST API的更改?

时间:2013-04-05 16:49:24

标签: rally

1)本周早些时候,我能够使用Create方法创建缺陷和测试用例,该方法当时有2个参数(字符串和DynamicJsonObject)。但是现在,它需要三个。我知道其中一个现在是工作区引用。如何获取工作区参考?为了创建缺陷和测试用例,我使用的是一个空字符串,这对我来说似乎正常。这是预期的吗?

2)为了创建测试用例结果,我遇到了一些麻烦。

        DynamicJsonObject newTCResult = new DynamicJsonObject();
        newTCResult["Date"] = DateTime.Now.ToString("yyyyMMdd");
        newTCResult["TestCase"] = "/testcase/11271454106";
        newTCResult["Notes"] = "test";
        newTCResult["Build"] = "13.1.0.90";
        newTCResult["Verdict"] = "Pass";

        CreateResult cr = restApi.Create(" ", "TestCaseResult", newTCResult);

截至目前,我运行时绝对没有任何事情发生。本周早些时候我成功地做到了这一点(当我能够使用带有两个参数的Create方法时)。我觉得问题是因为我没有有效的工作区引用。在此之前我遵循了另一个用户提出的类似问题的建议,但是现在我遇到了这个问题。

2 个答案:

答案 0 :(得分:1)

我终于能够解决这个问题了。看来日期字段需要转换为UTC,所以我的代码现在看起来像这样

newTCResult [“Date”] = DateTime.UtcNow.ToString(“o”);

在做出那么小的改变后,结果正常。

答案 1 :(得分:0)

有点令人惊讶的是,Creates on Stories或Defects使用一个空字符串来处理Workspace ref,虽然我怀疑在服务器端,Webservices API只是为所关注的用户使用Default Workspace。

无论哪种方式,以下是您如何获得感兴趣的工作区的参考资料:

        String myWorkspaceName = "My Workspace";

        // Get a Reference to Target Workspace
        Request workspaceRequest = new Request("workspace");
        workspaceRequest.Fetch = new List<string>()
            {
                "Name",
                "ObjectID"
            };

        workspaceRequest.Query = new Query("Name", Query.Operator.Equals, myWorkspaceName);
        QueryResult workspaceQueryResults = restApi.Query(workspaceRequest);

        var targetWorkspace = workspaceQueryResults.Results.First();
        Console.WriteLine("Found Target Workspace: " + targetWorkspace["Name"]);

        String workspaceRef = targetWorkspace["_ref"];

然后,您可以在致电workspaceRef时使用restApi.Create()