Testing 使用TeamCity服务消息查找测试是否失败并显示在生成日志上

Testing 使用TeamCity服务消息查找测试是否失败并显示在生成日志上,testing,automation,continuous-integration,teamcity,testcomplete,Testing,Automation,Continuous Integration,Teamcity,Testcomplete,我正在使用批处理文件在TeamCity上运行一些烟雾测试。批处理文件在TestComplete上运行我的测试,TestComplete是我们使用的自动化框架。无论我的测试失败或通过自动化工具TestComplete,我在TeamCity上的脚本始终显示成功。我想在TeamCity构建日志选项卡上添加测试运行信息,例如,如果我的测试因错误而失败并给出错误,我想在构建日志上显示错误。我尝试使用TeamCity服务消息来实现这一点,但它并没有像我预期的那样工作。也许我遗漏了什么或者做得不对 这就是我使

我正在使用批处理文件在TeamCity上运行一些烟雾测试。批处理文件在TestComplete上运行我的测试,TestComplete是我们使用的自动化框架。无论我的测试失败或通过自动化工具TestComplete,我在TeamCity上的脚本始终显示成功。我想在TeamCity构建日志选项卡上添加测试运行信息,例如,如果我的测试因错误而失败并给出错误,我想在构建日志上显示错误。我尝试使用TeamCity服务消息来实现这一点,但它并没有像我预期的那样工作。也许我遗漏了什么或者做得不对

这就是我使用服务消息的方式。我正在从TeamCity运行的.bat文件中输入消息

##teamcity[testStarted name='SmokeTest1']
run SmokeTest1.bat
##teamcity[testFailed name='SmokeTest1' message='error']
##teamcity[testFinished name='SmokeTest1']
上面的代码运行我的测试,并且总是根据我的'testFailed'命令说我的测试失败。我想要的是,它应该检查我的测试是否真的失败,如果失败则报告(也许它可以检查一些关键字来检查我的测试是否失败)。但现在发生的事情似乎是,我已经告诉它,测试失败了,并显示“error”消息。在运行测试之前,我不知道它是否会失败。我是不是遗漏了什么

另外,在下面的示例中,我们是否应该在运行测试之前输入错误?所以,如果我使用testStdErr并输入一个错误,它将始终报告该错误,而不管该错误是否真的发生在我的测试运行期间

##teamcity[testStarted name='SmokeTest1']
run SmokeTest1.bat
##teamcity[testStdOut name='testname' out='text']
##teamcity[testStdErr name='testname' out='error text']
##teamcity[testFinished name='SmokeTest1']
请告知。欢迎所有建议。谢谢大家!

我已经阅读了这两个问题,但没有找到答案:


您需要根据脚本返回的内容确定测试是否失败,然后调用testFailed消息

类似这样的东西(伪代码)

    ##teamcity[testStarted name='SmokeTest1']
    ret_va = (run SmokeTest1.bat)
    if (ret_va == 1) # 1 means fail
        ##teamcity[testFailed name='SmokeTest1' message='error']
    ##teamcity[testFinished name='SmokeTest1']