如果我理解正确,TeamCity 的工作方式是,如果支持运行的测试,它们将显示在Tests
构建选项卡下,那么您将能够在 REST API 的两个位置看到它们。
首先在/guestAuth/app/rest/builds/id:X
X 是内部版本 ID 号的地方。您将看到一个<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 服务消息以获取构建脚本交互,如果找到,可以在中间报告测试开始/失败并结束。
例如,您可以仅使用命令行自定义脚本构建步骤创建一个新构建:
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
你运行测试。希望有帮助。