无法在 JBehave 中执行元过滤器



我的JUnitRunner无法选择带有JBehave中指定的元标记的场景。

以下是我的故事:

Meta:
**@TestType Smoke**
Scenario: Verify Successful login flow
Given Init my scenario for <ScenarioName>
Given I successfully launch the application
When user enters <validusername> and <validpassword> and click on Login button
Then user is navigated to Home page
Then verify entered username should be displayed
Then I logout from the application
Then Complete Tear Down
Examples:
|ScenarioName|validusername|validpassword|
|Successful Login to Chiron|abcde|12345|

Scenario: Verify Failed login flow
Given Init my scenario for <ScenarioName>
Given I successfully launch the application
When user enters <invalidusername> and <invalidpassword> and click on Login button
Then user should be in Login page itself
Then Complete Tear Down
Examples:
|ScenarioName|invalidusername|invalidpassword|
|Verify Failed login|abcdefg|ijklmn|

以下是我的运行器文件:

public class JUnitRunnerWithTags extends JUnitStoryMaps {
public JUnitRunnerWithTags() {
configuredEmbedder().useMetaFilters(metaFilters());
}
@Override
public Configuration configuration() {
return new MostUsefulConfiguration()
.useStoryReporterBuilder(new StoryReporterBuilder()
.withCodeLocation(CodeLocations.codeLocationFromClass(this.getClass())));
}
@Override
protected List<String> metaFilters() {
return Arrays.asList("**+TestType Smoke**");
}
@Override
protected List<String> storyPaths() {
return new StoryFinder().findPaths(CodeLocations.codeLocationFromClass(this.getClass()), "**/LoginToApplication.story", "");
}
@Override
public InjectableStepsFactory stepsFactory() {
return new InstanceStepsFactory(configuration(),
new HomePageSteps(),
new DashboardSteps()
);
}
@Test
public void run() throws Throwable {
super.run();
}
}

当我将上述类作为 JUnit 测试运行时,带有 Smoke 标签的实际测试没有被调用,也没有执行任何内容。

以下是我执行上述代码时得到的

Using controls EmbedderControls[batch=false,skip=false,generateViewAfterStories=true,ignoreFailureInStories=false,ignoreFailureInView=false,verboseFailures=false,verboseFiltering=false,storyTimeouts=300,threads=1,failOnStoryTimeout=false]
Processing system properties {}
Mapping story stories/functionaltest/login/LoginToApplication.story with meta filters [+TestType Smoke]
Generating maps view to 'D:CignitiWorkProjectsautomationtargetjbehave' using story maps 'StoryMaps[metaFilters=[, +TestType Smoke]]' and view properties '{navigator=ftl/jbehave-navigator.ftl, views=ftl/jbehave-views.ftl, reports=ftl/jbehave-reports.ftl, nonDecorated=ftl/jbehave-report-non-decorated.ftl, decorated=ftl/jbehave-report-decorated.ftl, maps=ftl/jbehave-maps.ftl}

您应该扩展JUnitStories(而不是JUnitStoryMaps(来运行故事:

public class JUnitRunnerWithTags extends JUnitStories {
public JUnitRunnerWithTags() {
configuredEmbedder().useMetaFilters(Arrays.asList("**+TestType Smoke**"));
}
...

更多详情:

  • 故事映射
  • 启用 JUnit 的可嵌入项

最新更新