API:查找已发现最多缺陷的TestCase

时间:2013-01-22 05:35:04

标签: rally

是否有一种有效的方法来查询哪些测试用例发现了最多的缺陷?

我不认为你可以在测试用例中找到缺陷,看起来你不能在缺陷的测试用例上查询(该字段在那里但不能查询)。

所以,如果您想找出哪些测试用例找到了最多的缺陷,那么唯一的方法就是查询所有缺陷,然后在客户端计算测试用例。

有更好的方法吗?

1 个答案:

答案 0 :(得分:1)

我也没有办法在TestCase上查询缺陷。有一个WorkProduct字段,但是它旨在指向导致创建TestCase而不是您想要的Story(或缺陷)。您想检查缺陷上的TestCases字段。遗憾的是,缺陷上的TestCases字段在我们的标准WSAPI中的查询表达式中不可用。但是,您可以将它包含在我们的Lookback API中的查询中。

此查询将返回提及一个或多个TestCases的所有缺陷:

{
    "find":{
        "_TypeHierarchy":"Defect",
        "TestCases":{"$exists":true},
        "__At":"current"
    },
    "fields":["ObjectID","TestCases"]
}

这会给你这样的结果:

[
    {
        "ObjectID": 1412057460,
        "TestCases": [
            1431813466
        ]
    },
    {
        "ObjectID": 1445019668,
        "TestCases": [
            1445020483
        ]
    },
    {
        "ObjectID": 2021743865,
        "TestCases": [
            2844922903,
            2844882838
        ]
    },
    {
        "ObjectID": 2047435117,
        "TestCases": [
            2082930376
        ]
    },
    {
        "ObjectID": 2458916959,
        "TestCases": [
            2082930376
        ]
    }
]

但这仍然不是你想要的。您仍然需要找到具有该最大值的最大值和TestCase列表。 This code这样做。该代码的关键行是:

counts = {}
for r in results
  for t in r.TestCases
    unless counts[t]?
      counts[t] = 0
    counts[t]++

max = Math.max.apply({}, (value for key, value of counts))
testCasesWithMaxDefects = (key for key, value of counts when value is max)

alert("Test Case(s) with the maximum number of defects (#{max}) is(are) #{testCasesWithMaxDefects}")

按照link查看等效的JavaScript。