How to use getMetaFilters method of net.serenitybdd.jbehave.runners.SerenityReportingRunner class

Best Serenity jBehave code snippet using net.serenitybdd.jbehave.runners.SerenityReportingRunner.getMetaFilters

Source:SerenityReportingRunner.java Github

copy

Full Screen

...148        getConfiguredEmbedder().embedderControls().useStoryTimeoutInSecs(getStoryTimeoutInSecs());149        getConfiguredEmbedder().embedderControls().useStoryTimeouts(getStoryTimeout());150        getConfiguredEmbedder().embedderControls().useThreads(getThreadCount());151        if (metaFiltersAreDefined()) {152            getConfiguredEmbedder().useMetaFilters(getMetaFilters());153        }154//      if (!isRunningInMaven() && !isRunningInGradle()) {155        JUnitScenarioReporter junitReporter = new JUnitScenarioReporter(notifier, testCount(), getDescription(),156                getConfiguredEmbedder().configuration().keywords());157        // tell the reporter how to handle pending steps158        junitReporter.usePendingStepStrategy(getConfiguration().pendingStepStrategy());159        JUnitReportingRunner.recommendedControls(getConfiguredEmbedder());160        addToStoryReporterFormats(junitReporter);161//      }162        try {163            getConfiguredEmbedder().runStoriesAsPaths(getStoryPaths());164        } catch (Throwable e) {165            throw new SerenityManagedException(e);166        } finally {167            getConfiguredEmbedder().generateCrossReference();168        }169        shutdownTestSuite();170    }171    private boolean isRunningInGradle() {172        return Stream.of(new Exception().getStackTrace()).anyMatch(elt -> elt.getClassName().startsWith("org.gradle"));173    }174    /**175     * Override this method to add custom configuration to the JBehave embedder object.176     *177     * @param configuredEmbedder178     */179    public void beforeStoriesRun(ExtendedEmbedder configuredEmbedder) {180    }181    private void shutdownTestSuite() {182        StepEventBus.getEventBus().testSuiteFinished();183    }184    List<CandidateSteps> getCandidateSteps() {185        if (candidateSteps == null) {186            StepMonitor originalStepMonitor = createCandidateStepsWithNoMonitor();187            createCandidateStepsWith(originalStepMonitor);188        }189        return candidateSteps;190    }191    private void createCandidateStepsWith(StepMonitor stepMonitor) {192        // reset step monitor and recreate candidate steps193        getConfiguration().useStepMonitor(stepMonitor);194        candidateSteps = buildCandidateSteps();195        candidateSteps.forEach(196                step -> step.configuration().useStepMonitor(stepMonitor)197        );198    }199    private StepMonitor createCandidateStepsWithNoMonitor() {200        StepMonitor usedStepMonitor = getConfiguration().stepMonitor();201        createCandidateStepsWith(new NullStepMonitor());202        return usedStepMonitor;203    }204    private List<CandidateSteps> buildCandidateSteps() {205        List<CandidateSteps> candidateSteps;206        InjectableStepsFactory stepsFactory = configurableEmbedder207                .stepsFactory();208        if (stepsFactory != null) {209            candidateSteps = stepsFactory.createCandidateSteps();210        } else {211            Embedder embedder = getConfiguredEmbedder();212            candidateSteps = embedder.candidateSteps();213            if (candidateSteps == null || candidateSteps.isEmpty()) {214                candidateSteps = embedder.stepsFactory().createCandidateSteps();215            }216        }217        return candidateSteps;218    }219    private void addToStoryReporterFormats(JUnitScenarioReporter junitReporter) {220        StoryReporterBuilder storyReporterBuilder = getConfiguration().storyReporterBuilder();221        StoryReporterBuilder.ProvidedFormat junitReportFormat222                = new StoryReporterBuilder.ProvidedFormat(junitReporter);223        storyReporterBuilder.withFormats(junitReportFormat);224    }225    private List<Description> buildDescriptionFromStories() {226        List<CandidateSteps> candidateSteps = getCandidateSteps();227        JUnitDescriptionGenerator descriptionGenerator = new JUnitDescriptionGenerator(candidateSteps, getConfiguration());228        List<Description> storyDescriptions = new ArrayList<>();229        addSuite(storyDescriptions, "BeforeStories");230        PerformableTree performableTree = createPerformableTree(candidateSteps, getStoryPaths());231        storyDescriptions.addAll(descriptionGenerator.createDescriptionFrom(performableTree));232        addSuite(storyDescriptions, "AfterStories");233        return storyDescriptions;234    }235    private int countStories() {236        JUnitDescriptionGenerator descriptionGenerator = new JUnitDescriptionGenerator(getCandidateSteps(), getConfiguration());237        return descriptionGenerator.getTestCases() + beforeAndAfterStorySteps();238    }239    private int beforeAndAfterStorySteps() {240        return 2;241    }242    private PerformableTree createPerformableTree(List<CandidateSteps> candidateSteps, List<String> storyPaths) {243        ExtendedEmbedder configuredEmbedder = this.getConfiguredEmbedder();244        configuredEmbedder.useMetaFilters(getMetaFilters());245        BatchFailures failures = new BatchFailures(configuredEmbedder.embedderControls().verboseFailures());246        PerformableTree performableTree = configuredEmbedder.performableTree();247        RunContext context = performableTree.newRunContext(getConfiguration(), candidateSteps,248                configuredEmbedder.embedderMonitor(), configuredEmbedder.metaFilter(), failures);249        performableTree.addStories(context, configuredEmbedder.storyManager().storiesOfPaths(storyPaths));250        return performableTree;251    }252    private void addSuite(List<Description> storyDescriptions, String name) {253        storyDescriptions.add(Description.createTestDescription(Object.class,254                name));255    }256    private boolean metaFiltersAreDefined() {257        String metaFilters = getMetafilterSetting();258        return !StringUtils.isEmpty(metaFilters);259    }260    private String getMetafilterSetting() {261        Optional<String> environmentMetafilters = getEnvironmentMetafilters();262        Optional<String> annotatedMetafilters = getAnnotatedMetafilters(testClass);263        Optional<String> thucAnnotatedMetafilters = getThucAnnotatedMetafilters(testClass);264        return environmentMetafilters.orElse(annotatedMetafilters.orElse(thucAnnotatedMetafilters.orElse("")));265    }266    private Optional<String> getEnvironmentMetafilters() {267        return Optional.ofNullable(environmentVariables.getProperty(SerenityJBehaveSystemProperties.METAFILTER.getName()));268    }269    /**270     * When Metafilter in thucydides package is removed, this method and callers will be removed271     *272     * @param testClass273     * @return274     */275    @Deprecated276    private Optional<String> getThucAnnotatedMetafilters(Class<? extends ConfigurableEmbedder> testClass) {277        return (testClass.getAnnotation(net.thucydides.jbehave.annotations.Metafilter.class) != null) ?278                Optional.of(testClass.getAnnotation(net.thucydides.jbehave.annotations.Metafilter.class).value()) : Optional.empty();279    }280    private Optional<String> getAnnotatedMetafilters(Class<? extends ConfigurableEmbedder> testClass) {281        return (testClass.getAnnotation(Metafilter.class) != null) ?282                Optional.of(testClass.getAnnotation(Metafilter.class).value()) : Optional.empty();283    }284    protected boolean getIgnoreFailuresInStories() {285        return environmentVariables.getPropertyAsBoolean(SerenityJBehaveSystemProperties.IGNORE_FAILURES_IN_STORIES.getName(), false);286    }287    protected int getStoryTimeoutInSecs() {288        return environmentVariables.getPropertyAsInteger(SerenityJBehaveSystemProperties.STORY_TIMEOUT_IN_SECS.getName(),289                (int) getConfiguredEmbedder().embedderControls().storyTimeoutInSecs());290    }291    protected int getThreadCount() {292        return environmentVariables.getPropertyAsInteger(SerenityJBehaveSystemProperties.JBEHAVE_THREADS.getName(), 1);293    }294    protected String getStoryTimeout() {295        return environmentVariables.getProperty(296                SerenityJBehaveSystemProperties.STORY_TIMEOUT.getName(),297                getConfiguredEmbedder().embedderControls().storyTimeouts());298    }299    protected List<String> getMetaFilters() {300        String metaFilters = getMetafilterSetting();301        return Lists.newArrayList(Splitter.on(Pattern.compile(",")).trimResults().omitEmptyStrings().split(metaFilters));302    }303    protected boolean getIgnoreFailuresInView() {304        return environmentVariables.getPropertyAsBoolean(SerenityJBehaveSystemProperties.IGNORE_FAILURES_IN_VIEW.getName(), true);305    }306    public boolean isRunningInMaven() {307        return Stream.of(new Exception().getStackTrace()).anyMatch(elt -> elt.getClassName().contains("maven"));308    }309}...

Full Screen

Full Screen

getMetaFilters

Using AI Code Generation

copy

Full Screen

1public class SerenityRunner extends SerenityReportingRunner {2    public SerenityRunner(Class<?> clazz) throws InitializationError {3        super(clazz);4    }5    protected List<String> storyPaths() {6        List<String> storyPaths = super.storyPaths();7        System.out.println("Meta filters: " + getMetaFilters());8        return storyPaths;9    }10}

Full Screen

Full Screen

getMetaFilters

Using AI Code Generation

copy

Full Screen

1public class SerenityReportingRunnerWithCustomMetaFilters extends SerenityReportingRunner {2    public SerenityReportingRunnerWithCustomMetaFilters(Class<?> klass) throws InitializationError {3        super(klass);4    }5    protected List<String> storyPaths() {6        return new StoryFinder().findPaths(codeLocationFromClass(this.getClass()).getFile(), Arrays.asList("**/*.story"), Arrays.asList(""));7    }8    protected List<String> metaFilters() {9        List<String> metaFilters = new ArrayList<>();10        metaFilters.add("-skip");11        metaFilters.addAll(getMetaFilters());12        return metaFilters;13    }14    private List<String> getMetaFilters() {15        List<String> metaFilters = new ArrayList<>();16        return metaFilters;17    }18}

Full Screen

Full Screen

getMetaFilters

Using AI Code Generation

copy

Full Screen

1import net.serenitybdd.jbehave.runners.SerenityReportingRunner2import net.thucydides.core.model.TestOutcome3import net.thucydides.core.model.TestTag4import net.thucydides.core.model.TestTag.withName5import net.thucydides.core.model.TestType6import net.thucydides.core.model.Story7import net.thucydides.core.requirements.model.Requirement8import net.thucydides.core.requirements.model.RequirementType9import net.thucydides.core.requirements.model.cucumber.CucumberTagStatement10import net.thucydides.core.steps.StepEventBus11import org.jbehave.core.configuration.Configuration12import org.jbehave.core.model.ExamplesTable13import org.jbehave.core.model.Story14import org.jbehave.core.model.Scenario15import org.jbehave.core.model.ExamplesTable16import org.jbehave.core.model.ExamplesTableFactory17import org.jbehave.core.model.ExamplesTableFactory.TableProperties18import org.jbehave.core.model.ExamplesTableFactory.TableTransformers19import org.jbehave.core.model.ExamplesTableFactory.TableTransformersBuilder20import org.jbehave.core.model.ExamplesTableFactory.TableTransformersByType21import org.jbehave.core.model.ExamplesTableFactory.TableTransformersByTypeBuilder22import org.jbehave.core.model.ExamplesTableFactory.TableTransformersByTypeBuilder.TableTransformersByTypeEntry23import org.jbehave.core.model.ExamplesTableFactory.TableTransformersByTypeBuilder.TableTransformersByTypeEntryBuilder24import org.jbehave.core.model.ExamplesTableFactory.TableTransformersBuilder.TableTransformersEntry25import org.jbehave.core.model.ExamplesTableFactory.TableTransformersBuilder.TableTransformersEntryBuilder26import org.jbehave.core.model.ExamplesTableFactory.TableTransformersEntryBuilder27import org.jbehave.core.model.ExamplesTableFactory.TableTransformersEntryBuilder.TableTransformersEntryByTypeBuilder28import org.jbehave.core.model.ExamplesTableFactory.TableTransformersEntryBuilder.TableTransformersEntryByTypeBuilder.TableTransformersEntryByTypeEntryBuilder29import org.jbehave.core.model.ExamplesTableFactory.TableTransformersEntry

Full Screen

Full Screen

getMetaFilters

Using AI Code Generation

copy

Full Screen

1import org.jbehave.core.configuration.Configuration;2import org.jbehave.core.model.Story;3import org.jbehave.core.reporters.StoryReporterBuilder;4import org.jbehave.core.steps.InjectableStepsFactory;5import org.jbehave.core.steps.InstanceStepsFactory;6import org.jbehave.core.steps.ParameterConverters;7import org.jbehave.core.steps.ParameterConverters.DateConverter;8import org.jbehave.core.steps.ParameterConverters.ExamplesTableConverter;9import org.jbehave.core.steps.ParameterConverters.ParameterConvertersInstanceFactory;10import org.jbehave.core.steps.ParameterConverters.ParameterNotFound;11import org.jbehave.core.steps.ParameterConverters.ParameterNotFoundConverter;12import org.jbehave.core.steps.ParameterConverters.ParameterNotFoundFactory;13import org.jbehave.core.steps.StepCollector.Stage;14import org.jbehave.core.steps.StepCreator.ParameterControls;15import org.jbehave.core.steps.StepFinder;16import org.jbehave.core.steps.StepMonitor;17import org.jbehave.core.steps.StepType;18import org.jbehave.core.steps.Timing;19import org.jbehave.core.steps.Timing.StepMonitorWrapper;20import org.jbehave.core.steps.Timing.TimedStepMonitor;21import org.jbehave.core.steps.Timing.TimedStepMonitorInstanceFactory;22import org.jbehave.core.steps.Timing.TimedStepMonitorInstanceFactory.TimingStepMonitorNotFound;23import org.jbehave.core.steps.Timing.TimedStepMonitorInstanceFactory.TimingStepMonitorNotFoundConverter;24import org.jbehave.core.steps.Timing.TimedStepMonitorInstanceFactory.TimingStepMonitorNotFoundFactory;25import org.jbehave.core.steps.Timing.TimedStepMonitorInstanceFactory.TimingStepMonitorNotFoundParameterConverter;26import org.jbehave.core.steps.Timing.TimingStepMonitorNotFoundParameterConverter;27import org.jbehave.core.steps.Timing.TimingStepMonitorNotFoundParameterConverter.TimingStepMonitorNotFoundParameterNotFoundConverter;28import org.jbehave.core.steps.Timing.TimingStepMonitorNotFoundParameterConverter.TimingStepMonitorNotFoundParameterNotFoundFactory;29import org.jbehave

Full Screen

Full Screen

getMetaFilters

Using AI Code Generation

copy

Full Screen

1package com.serene.tests;2import net.thucydides.core.annotations.Managed;3import net.thucydides.core.annotations.Steps;4import net.thucydides.core.annotations.WithTag;5import net.thucydides.junit.runners.SerenityRunner;6import net.thucydides.junit.annotations.Concurrent;7import net.thucydides.junit.annotations.ConcurrentMode;8import org.junit.Test;9import org.junit.runner.RunWith;10import org.openqa.selenium.WebDriver;11import com.serene.steps.serenity.EndUserSteps;12@RunWith(SerenityRunner.class)13@Concurrent(threads="4", mode = ConcurrentMode.SAME_BROWSER)14public class StoryFilterTest {15    @Managed(uniqueSession = true)16    public WebDriver webdriver;17    public EndUserSteps endUser;18    @WithTag("feature:Stories")19    public void filter_stories() {20        endUser.is_on_the_home_page();21        endUser.clicks_filter_button();22        endUser.selects_the_filter_value();23        endUser.clicks_filter_button();24        endUser.should_see_filtered_stories();25    }26}27package com.serene.steps.serenity;28import net.thucydides.core.annotations.Step;29import net.thucydides.core.steps.ScenarioSteps;30import net.thucydides.core.annotations.StepGroup;31import static org.hamcrest.MatcherAssert.assertThat;32import static org.hamcrest.Matchers.containsString;33import com.serene.pages.HomePage;34public class EndUserSteps extends ScenarioSteps {35    HomePage homePage;36    public void is_on_the_home_page() {37        homePage.open();38    }39    public void clicks_filter_button() {40        homePage.click_filter_button();41    }42    public void selects_the_filter_value() {43        homePage.select_filter_value();44    }45    public void should_see_filtered_stories() {46        assertThat(homePage.getStoryList(), containsString("Story 1"));47    }48}49package com.serene.pages;50import org.openqa.selenium.By;51import org.openqa.selenium.WebDriver;52import org.openqa.selenium.WebElement;53import org.openqa.selenium.support.FindBy;54import net.s

Full Screen

Full Screen

Automation Testing Tutorials

Learn to execute automation testing from scratch with LambdaTest Learning Hub. Right from setting up the prerequisites to run your first automation test, to following best practices and diving deeper into advanced test scenarios. LambdaTest Learning Hubs compile a list of step-by-step guides to help you be proficient with different test automation frameworks i.e. Selenium, Cypress, TestNG etc.

LambdaTest Learning Hubs:

YouTube

You could also refer to video tutorials over LambdaTest YouTube channel to get step by step demonstration from industry experts.

Run Serenity jBehave automation tests on LambdaTest cloud grid

Perform automation testing on 3000+ real desktop and mobile devices online.

Try LambdaTest Now !!

Get 100 minutes of automation test minutes FREE!!

Next-Gen App & Browser Testing Cloud

Was this article helpful?

Helpful

NotHelpful