JBehave中的故事计数错误

时间:2017-03-28 20:57:24

标签: java jbehave

出于某种原因,JBehave似乎在计算执行错误的故事数量。为了说明我引用的行为,我设置了以下最小的例子 - 它包含一个单独的故事,它运行一个简单的测试:

JBehaveTest.java

package test.jbehave;

import org.jbehave.core.configuration.Configuration;
import org.jbehave.core.configuration.MostUsefulConfiguration;
import org.jbehave.core.io.LoadFromClasspath;
import org.jbehave.core.junit.JUnitStory;
import org.jbehave.core.reporters.Format;
import org.jbehave.core.reporters.StoryReporterBuilder;
import org.jbehave.core.steps.InjectableStepsFactory;
import org.jbehave.core.steps.InstanceStepsFactory;

public class JBehaveTest extends JUnitStory {

  @Override
  public Configuration configuration() {
    return new MostUsefulConfiguration()
      .useStoryLoader(new LoadFromClasspath(this.getClass()))
      .useStoryReporterBuilder(new StoryReporterBuilder()
      .withDefaultFormats()
      .withFormats(Format.CONSOLE, Format.TXT)); 
  }

  @Override
  public InjectableStepsFactory stepsFactory() {
    return new InstanceStepsFactory(configuration(), new TestSteps());
  }
}

TestSteps.java

package test.jbehave;

import org.jbehave.core.annotations.Given;
import org.junit.Assert;

public class TestSteps {

  @Given("I run a test")
  public void iRunATest() {
    Assert.assertTrue(true);
  }
}

j_behave_test.story

Scenario: Some random text
Given I run a test

现在,我所期待的是,它运行了1个故事,其中包含1个场景。但相反,它实际上运行2个故事:

控制台输出

Processing system properties {}
Using controls EmbedderControls[...]

(BeforeStories)

Running story test/jbehave/j_behave_test.story

(test/jbehave/j_behave_test.story)
Scenario: 
Given I run a test

(AfterStories)

Generating reports view to ...
Reports view generated with 2 stories (of which 0 pending) containing 1 scenarios (of which 0 pending)

我根本无法弄清楚为什么JBehave声称已经运行了包含1个场景的2个故事。我对JBehave来说比较新,所以,如果你知道为什么会这样,请给我一些暗示。谢谢!

更新1 在过去的几天里,我经常与JBehave合作,发现这个问题在我的项目中非常一致。不幸的是,到目前为止我无法找到解决方案,所以错误的计数一直在弄乱我的测试报告。

更新2 Scenario: Some random text插入故事文件中。

1 个答案:

答案 0 :(得分:0)

这实际上是JBehave 4.x版本中的一个错误,该错误在控制台上打印此信息时计算“总计”报告状态。但是,“总计报告”本身并未创建。您可以在https://jbehave.atlassian.net/browse/JBEHAVE-1186

处跟踪此问题