测试结果

命令行输出

测试执行的最直观的输出就是命令行的输出显示. 所有被执行的测试套件和测试用例, 以及它们执行的结果, 都实时地显示出来. 下面的例子展示了一个只包含两个测试用例的简单测试集的执行输出情况:

  1. ==============================================================================
  2. Example test suite
  3. ==============================================================================
  4. First test :: Possible test documentation | PASS |
  5.  ------- ------- ------- ------- ------- ------- ------- ------- ------- ------- --------
  6. Second test | FAIL |
  7. Error message is displayed here
  8. ==============================================================================
  9. Example test suite | FAIL |
  10. 2 critical tests, 1 passed, 1 failed
  11. 2 tests total, 1 passed, 1 failed
  12. ==============================================================================
  13. Output: /path/to/output.xml
  14. Report: /path/to/report.html
  15. Log: /path/to/log.html

从Robot Framework2.7版本开始, 控制台上在用例执行中还会有顶层关键字执行结束的通知. 一个绿色的点表示执行通过, 而红色的F表示失败. 这些标示在行末显示, 并且在测试最终完成后被结果状态覆盖. 如果将控制台输出重定向到文件, 则这些标示不会出现.

生成的输出文件

命令行输出内容非常有限, 所以通常需要单独的输出文件用来检查测试的结果. 如上例所示, 默认生成3个输出文件. 首先是一个XML格式的文件, 包含了关于测试执行的所有信息. 第二个文件是一个高层的报告文件, 第三个文件则是详细的日志文件. 这些文件和其它可能是输出文件将在 不同输出文件 中详细讨论.

返回码

执行脚本通过返回码和系统进行通讯, 上报整个测试执行的情况. 当执行成功开始, 并且没有 critical test 失败, 则返回码为0.

所有可能的返回码如下表所示.

Possible return codes
RCExplanation
0All critical tests passed.
1-249Returned number of critical tests failed.
250250 or more critical failures.
251Help or version information printed.
252Invalid test data or command line options.
253Test execution stopped by user.
255Unexpected internal error.

返回码总是应该在执行后轻易获取到, 这样就能轻松的自动判断整个执行的状态. 例如, 在bash shell中, 返回码保存在特殊的变量 $? 中, 而在Windows中, 是在 %ERRORLEVEL% 中. 如果你用到了其它外部工具来执行测试, 请参考它们的文档来了解如何获取返回码.

如果设置了命令行选项 —NoStatusRC, 则返回码在有关键失败发生时也将是0. 这在某些场景下会很有用, 例如, 在持续集成(continuous integration)中, CI服务器需要在决定整个测试执行的状态之前, 对测试结果进行后处理.

注解

有些返回码在 Rebot_ 有用到.

执行过程中的错误和警告

执行过程中可能会发生一些未预料到的问题, 例如导入库失败, 导入资源文件失败, 或者是关键字已经 废弃. 取决于问题的严重性, 它们被分类为错误和警告.

错误和警告信息会同时写入控制台(如果使用的是标准错误流的话), 并出现在日志文件的单独的 Test Execution Errors 章节中, 同时还会写入Robot Framework的 系统日志. 除了Robot Framework自己产生的错误和警告信息, 测试库也可以生成 errors and warnings.

下面的例子展示了错误和警告在日志文件中的样子.

20090322 19:58:42.528ERRORError in file '/home/robot/tests.robot' in table 'Setting' in element on row 2: Resource file 'resource.robot' does not exist
20090322 19:58:43.931WARNKeyword 'SomeLibrary.Example Keyword' is deprecated. Use keyword Other Keyword instead.