如何在TeamCity中获得PassedTestCount和FailedTestCount?

时间:2013-10-23 13:08:43

标签: teamcity teamcity-8.0

我正在向此处定义的guestAuth/app/rest/builds/id:2777/statistics发出请求,http://confluence.jetbrains.com/display/TW/REST+API+Plugin#RESTAPIPlugin-OtherBuildRequests。如果我正确理解文档,则应列出此处定义的参数http://confluence.jetbrains.com/display/TCD8/Custom+Chart#CustomChart-listOfDefaultStatisticValues,但我找不到PassedTestCountFailedTestCount

还有其他方法可以获得这些价值吗?

1 个答案:

答案 0 :(得分:3)

如果我理解正确,TeamCity的工作方式是,如果支持运行的测试,它们将显示在构建的Tests选项卡下,那么您将能够在两个位置看到REST API。

首先在/guestAuth/app/rest/builds/id:X下,其中X是Build ID Number。您将看到的是<statusText>标记,其中包含以下文字:

<statusText>Tests passed: 4</statusText>
<statusText>Tests failed: 2 (2 new), passed: 6</statusText>
<statusText>Tests failed: 2, passed: 6</statusText>

理论上你可以解析得到你的数字。

但是,它们也在/guestAuth/app/rest/builds/id:X/statistics下使用以下标记:

<property name="FailedTestCount" value="2"/>
<property name="PassedTestCount" value="6"/>

但是,如果没有失败的测试,“FailedTestCount”属性标记将不存在。

如果您的测试没有显示在Test下,那么您可以查看TeamCity Service Messages for Build Script Interaction,如果找到,可以在中间报告测试开始/结束失败。

例如,您可以使用命令行自定义脚本构建步骤创建新构建:

echo "##teamcity[testSuiteStarted name='suite.name']"
echo "##teamcity[testSuiteStarted name='nested.suite']"
echo "##teamcity[testStarted name='package_or_namespace.ClassName.TestName']"
echo "##teamcity[testFailed name='package_or_namespace.ClassName.TestName' message='The number should be 20000' details='junit.framework.AssertionFailedError: expected:<20000> but was:<10000>|n|r    at junit.framework.Assert.fail(Assert.java:47)|n|r    at junit.framework.Assert.failNotEquals(Assert.java:280)|n|r...']"
echo "##teamcity[testFinished name='package_or_namespace.ClassName.TestName']"
echo "##teamcity[testStarted name='package_or_namespace.ClassName.TestNameTwo']"
echo "##teamcity[testFinished name='package_or_namespace.ClassName.TestNameTwo']"
echo "##teamcity[testSuiteFinished name='nested.suite']"
echo "##teamcity[testSuiteFinished name='suite.name']"

最终会显示:

<property name="FailedTestCount" value="1"/>
<property name="PassedTestCount" value="1"/>

如果您运行测试,请在/guestAuth/app/rest/builds/id:X/statistics下。希望有所帮助。