gpt4 book ai didi

java - 如何使用 Serenity、JBehave 和 Selenium 设置配置的嵌入器以使用元过滤器 (-skip)

转载 作者:行者123 更新时间:2023-11-29 05:02:41 26 4
gpt4 key购买 nike

在创建新场景时,我只想测试我当前使用的场景。为此,我想在我的场景之前使用 Meta: @skip 标签。正如我发现我必须使用 embedder 来配置使用的元标记,所以我尝试了:

configuredEmbedder().useMetaFilters(Arrays.asList("-skip"));

但实际上这对我的测试场景仍然没有影响。我在 SerenityStories 测试套件定义的构造函数中使用了它。下面是这个类的完整代码:

public class AcceptanceTestSuite extends SerenityStories {
@Managed
WebDriver driver;

public AcceptanceTestSuite() {
System.setProperty("webdriver.chrome.driver", "D:/files/chromedriver/chromedriver.exe");
System.setProperty("chrome.switches", "--lang=en");
System.setProperty("restart.browser.each.scenario", "true");
configuredEmbedder().useMetaFilters(Arrays.asList("-skip"));

runSerenity().withDriver("chrome");
}

@Override
public Configuration configuration() {
Configuration configuration = super.configuration();

Keywords keywords = new LocalizedKeywords(DEFAULTSTORYLANGUAGE);
Properties properties = configuration.storyReporterBuilder().viewResources();
properties.setProperty("encoding", "UTF-8");

configuration.useKeywords(keywords)
.useStoryParser(new RegexStoryParser(keywords, new ExamplesTableFactory(new LoadFromClasspath(this.getClass()))))
.useStoryLoader(new UTF8StoryLoader()).useStepCollector(new MarkUnmatchedStepsAsPending(keywords))
.useDefaultStoryReporter(new ConsoleOutput(keywords)).storyReporterBuilder().withKeywords(keywords).withViewResources(properties);


return configuration;
}
}

这是错误的地方还是我错过了什么?仍然执行所有场景。

编辑:

我更改了以下类(class),现在我认为它“有效”

public AcceptanceTestSuite() {
System.setProperty("webdriver.chrome.driver", "D:/files/chromedriver/chromedriver.exe");
System.setProperty("chrome.switches", "--lang=de");
System.setProperty("restart.browser.each.scenario", "true");
this.useEmbedder(configuredEmbedder());

runSerenity().withDriver("chrome");
}

@Override
public Embedder configuredEmbedder() {
final Embedder embedder = new Embedder();
embedder.embedderControls()
.useThreads(1)
.doGenerateViewAfterStories(true)
.doIgnoreFailureInStories(false)
.doIgnoreFailureInView(false)
.doVerboseFailures(true);

final Configuration configuration = configuration();

embedder.useConfiguration(configuration);
embedder.useStepsFactory(stepsFactory());
embedder.useMetaFilters(Arrays.asList("-skip"));

return embedder;
}

但现在我收到消息 [pool-1-thread-1] INFO net.serenitybdd.core.Serenity - TEST IGNORED 但场景仍在执行。仅在结果页面中,我得到该场景被忽略(但仍被执行)的信息。有没有办法跳过该场景,使其不会运行?

最佳答案

我无法使用 configuredEmbedder() 运行它,而是通过在我的 mvn 运行配置中添加 -Dmetafilter="+working -finished" 作为目标并使用标记 @working 用于我正在使用和我想运行的场景,@finsihed 用于我不想执行的场景。如果我想更改元标记,我仍然必须更改运行配置,所以它不是很舒服,但我仍然得到了我想要的东西。

关于java - 如何使用 Serenity、JBehave 和 Selenium 设置配置的嵌入器以使用元过滤器 (-skip),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31532064/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com