Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/400.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在Cucumber JVM(如Cucumber Ruby)中捕获STDOUT';s推杆?_Java_Cucumber_Cucumber Jvm - Fatal编程技术网

Java 如何在Cucumber JVM(如Cucumber Ruby)中捕获STDOUT';s推杆?

Java 如何在Cucumber JVM(如Cucumber Ruby)中捕获STDOUT';s推杆?,java,cucumber,cucumber-jvm,Java,Cucumber,Cucumber Jvm,在本例中,通过调用将放入步骤定义中的任何输出都被捕获为“测试输出”,并相应地格式化,如以下输出示例所示: 功能:一件简单的事情 场景:简单场景#功能/简单。功能:3 假设我做了一个步骤#features/steps/step.rb:1 此文本以puts输出 正如您在上面看到的,它以“漂亮”的输出格式缩进。在JSON格式中,它甚至以结构化方式捕获: “关键字”:“场景”, “名称”:“一个简单的场景”, "行":3,, “说明”:“, “id”:“一件简单的事情;一个简单的场景”, “类型”:“

在本例中,通过调用
放入步骤定义中的任何输出都被捕获为“测试输出”,并相应地格式化,如以下输出示例所示:

功能:一件简单的事情
场景:简单场景#功能/简单。功能:3
假设我做了一个步骤#features/steps/step.rb:1
此文本以puts输出
正如您在上面看到的,它以“漂亮”的输出格式缩进。在JSON格式中,它甚至以结构化方式捕获:

“关键字”:“场景”,
“名称”:“一个简单的场景”,
"行":3,,
“说明”:“,
“id”:“一件简单的事情;一个简单的场景”,
“类型”:“场景”,
“步骤”:[
{
“关键字”:“给定”,
“名称”:“我做一个步骤”,
"行":4,,
“产出”:[
“此文本通过puts输出”
],
}
],
上面是使用一个普通的特征文件和步骤定义生成的,如下所示:

给定(/^I执行步骤$/)执行
puts“此文本通过puts输出”
结束
在Java中实现Cucumber步骤时,是否有一个等价的函数,我可以使用它以相同的方式捕获此输出?打印到
System.out
会绕过捕获机制,就像在Ruby中使用
STDOUT.put
一样


我没有看到任何Cucumber JVM示例使用此功能,这与Ruby Cucumber的许多示例不同,但Cucumber JVM的JSON输出中显然有一个“output”条目因此,我认为必须有一种写入该字段的方法。

看起来这可以通过写入表示当前运行场景的对象来实现

public class StepDefs {
  private Scenario scenario;

  /* Need to capture the scenario object in the instance to access it
   * in the step definition methods. */
  @Before
  public void before(Scenario scenario) {
    this.scenario = scenario;
  }

  @Given("^I do a step$")
  public void iDoAStep() {
    scenario.write("This text is output with scenario.write");
  }
}
与Ruby中的
put
调用一样,这将在JSON输出文件中捕获。它在“pretty”输出中也被着色,尽管它不像Ruby实现那样缩进。然而,这似乎是我能找到的最接近的等价物