При создании новых сценариев я хочу протестировать только тот сценарий, с которым сейчас работаю. Для этого я хочу использовать тег 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;
}
}
Это не то место или я что-то пропустил? Тем не менее все сценарии выполняются.
ИЗМЕНИТЬ:
Я изменил следующие классы, и теперь я думаю, что это «работает»
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
, но сценарий все еще выполняется. Только на странице результатов я получаю информацию о том, что этот сценарий игнорируется (но все же выполняется). Есть ли способ ПРОПУСТИТЬ сценарий, чтобы он не запускался?
Meta: @skip
в вашем файле .story? После строкиScenario: ...
? - person Kristof   schedule 22.07.2015Scenario: Here is my scenario description Meta: @skip Given something When something Then something
- person spcial   schedule 22.07.2015SerenityStories
— он будет искать все истории в папке, не глядя наmetaFilters
эмбеддера. - person Dmitriy Popov   schedule 24.06.2019