使用@setup后Karate报告中Scenario Outline注释缺失,是否为预期行为?
问题:Scenario Outline中的注释未在Karate报告显示是预期结果还是Bug?
运行以下Karate代码时,Scenario Outline中的两行注释:
# printing initial name value# printing initial replaceVar value
未在Karate报告中显示,我们原本期望报告能展示这两行注释。请问这是使用@setup的预期结果还是Bug?
报告截图:
代码示例
Feature: scenario outline using a dynamic generator function Background: # setting url * url 'https://www.google.com' * def replacementVar = 'this was a replaced variable' @setup Scenario: setup of data # creating json data and casting as string for replacement * def testGenerator = [{ name: 'test replaceVar', replaceVar: '<replaceVar>'},{ name: 'test replaceVar', replaceVar: '<replaceString>' }] * print 'testGenerator-initial-',testGenerator # printing current generated data value * string testGenerator = testGenerator * print 'testGenerator-string-',testGenerator # replacing data in generated data * replace testGenerator | token | value | | replaceVar | 'replacementVar' | | replaceString | 'replaced String' | # converting generated data back to json object for use in scenario * json testGenerator = testGenerator # printing updated generated data value * print 'testGenerator-json-',testGenerator Scenario Outline: test name: ${name} # printing initial name value * print 'name-',name # printing initial replaceVar value * print 'replaceVar-',replaceVar Examples: | karate.setup().testGenerator |
回答
这是预期行为,并非Bug。
原因如下:
- Karate的
@setup场景仅用于前置数据准备逻辑,它的执行细节不会体现在最终报告中,报告核心聚焦主测试场景的执行过程。 - 你通过
karate.setup().testGenerator给Scenario Outline提供数据源时,Karate会将Scenario Outline的步骤作为模板展开执行,但普通的#注释属于纯文本说明,不会被Karate识别为可执行测试步骤,因此不会被渲染到报告里。
如果需要让这些说明性内容出现在报告中,可以改用以下两种方式:
- 使用
* comment 'printing initial name value'语法,Karate会将comment关键字标记的语句识别为步骤,显示在报告中 - 将注释转换成打印语句:
* print 'printing initial name value',这样不仅能在报告中看到说明,还会在控制台输出对应内容
内容的提问来源于stack exchange,提问作者mike
相关产品推荐
相关产品推荐

