出于某种原因,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
插入故事文件中。
答案 0 :(得分:0)
这实际上是JBehave 4.x版本中的一个错误,该错误在控制台上打印此信息时计算“总计”报告状态。但是,“总计报告”本身并未创建。您可以在https://jbehave.atlassian.net/browse/JBEHAVE-1186
处跟踪此问题