是否有任何工具可以查看有关SCM提交的单元测试的“通过/失败”历史记录?

时间:2011-03-28 16:39:16

标签: unit-testing version-control continuous-integration

这似乎是一个不用脑子,我几乎肯定这样的东西必须存在。我只是不知道在哪里找到它。另一方面,也许有技术原因这是不可能的,我只是没有看到它们。

但基本上,在我看来,如果给定特定的单元测试,可以(在Jenkins之类的CI服务器的帮助下)查看影响红色的提交历史,这将非常有用。 /有问题的测试的绿色状态。所以,说我希望看到单位文字X的这样一段历史;我可能会看到这样的历史:

Revision | Date       | Test X Status
-------------------------------------
123      | 2011-03-20 | Failed
120      | 2011-03-19 | Passed
119      | 2011-03-19 | Failed
112      | 2011-03-16 | Passed
111      | 2011-03-16 | Pending

希望这是有道理的:我所看到的基本上是一个过滤的提交列表 - 只有那些对所讨论的特定单元测试(X)的结果有影响的那些。

是否存在这样的工具(任何地方 -so,作为独立工具,作为某些协作软件的组件,作为Eclipse,Visual Studio等的插件)?

1 个答案:

答案 0 :(得分:1)

使用 REST ,Luke。

这个快速而又脏的Bash脚本适用于Bamboo,我使用Spring Framework CI server REST API对其进行了测试:

echo "Revision        Date                            Test X Status"
echo "-------------------------------------------------------------"
url=https://build.springsource.org/rest/api/latest/result
for buildNumber in {1000..980}
do 
    curl -qs ${url}/SPR-TRUNKSNAPSHOT-${buildNumber} \
     | sed 's/^.*state="\(.*\)" key.*buildCompletedTime.\(.*\)..buildCompletedTime.*vcsRevisionKey.\(.*\)..vcsRevisionKey.*$/\3\t\t\2\t\1/'
    echo
done

最丑陋的部分是使用sed解析XML(旁注:可惜Linux shell不提供XPath / XSLT内置命令行工具, c'mon ,它是二十一世纪!),但它有效:

Revision    Date                             Test X Status
-------------------------------------------------------------
4086        2011-03-13T01:09:13.319-08:00    Successful
4083        2011-03-12T01:05:49.145-08:00    Successful
4081        2011-03-11T01:04:46.949-08:00    Successful
4074        2011-03-10T01:09:11.003-08:00    Successful
4069        2011-03-09T01:10:17.766-08:00    Successful
4069        2011-03-08T01:09:34.492-08:00    Successful
4069        2011-03-07T06:43:51.054-08:00    Successful
4068        2011-03-07T03:50:41.909-08:00    Failed
4068        2011-03-07T00:53:55.523-08:00    Failed
4060        2011-03-06T01:06:50.758-08:00    Failed
4060        2011-03-05T01:08:35.477-08:00    Successful
4057        2011-03-04T01:08:52.870-08:00    Successful
4056        2011-03-03T01:10:00.473-08:00    Successful
4056        2011-03-02T01:09:15.679-08:00    Successful
4055        2011-03-01T01:13:19.069-08:00    Successful
4051        2011-02-28T01:08:32.165-08:00    Successful
4050        2011-02-27T00:59:33.392-08:00    Successful
4050        2011-02-26T01:15:01.113-08:00    Successful
4036        2011-02-25T01:09:35.420-08:00    Successful
4032        2011-02-24T01:13:29.997-08:00    Successful
4030        2011-02-23T00:56:51.656-08:00    Failed

Jenkins也有REST支持,因此重写代码不应超过30分钟。