代码之家  ›  专栏  ›  技术社区  ›  VoiceOfUnreason

如何使RFT实时报告测试结果?

  •  1
  • VoiceOfUnreason  · 技术社区  · 14 年前

    在我们的开发环境中,我们运行一个持续集成服务(TeamCity),它通过运行构建/测试作业和报告结果来响应代码签入。当作业正在进行时,我们可以很容易地看到到目前为止已经执行了多少个单元测试,有多少个测试失败了,等等。

    我的自动化测试团队正在交付在RationalFunctionalTester中开发的UI测试。从源代码管理系统中提取这些测试,编译它们,并从命令行中执行它们,这些似乎都是非常直接的练习。

    我找不到的是一种自动报告测试结果的方法——例如,似乎没有任何钩子供侦听器使用,也没有任何方法自定义发出的消息。

    从我目前的研究中,我得出结论,我唯一的选择是(a)等到测试完成,然后(b)解析RFT生成的HTML报告。

    有没有人比这更好的答案?

    2 回复  |  直到 13 年前
        1
  •  1
  •   eric2323223    13 年前

    以下是我用于类似用途的解决方法:

    1. 编写一个覆盖OnTerminate回调方法的助手超级类,在那里实现日志分析逻辑。
    2. 将测试脚本的helper super类更改为在步骤1中创建的helper super类。
    3. 使用 RFT CLI 在持续集成代码中调用脚本。
        2
  •  0
  •   Tom E    13 年前

    扩展到@eric2323223,在您的内部覆盖中,您可以使用teamcity的 build script interaction 将您的RFT通过/失败状态汇总到TeamCity的功能。您只需要将这些特定于TeamCity的消息发送到命令行,以便TeamCity接收它们。

    ##teamcity[testStarted name='test1']
    ##teamcity[testFailed name='test1' message='failure message' details='message and stack trace']
    ##teamcity[testFinished name='test1']
    
    ##teamcity[testStarted name='test2']
    ##teamcity[testFailed type='comparisonFailure' name='test2' message='failure message' details='message and stack trace' expected='expected value' actual='actual value']
    ##teamcity[testFinished name='test2']