'Active Tag in Cucumber Java

Is there anyway to identify which is the current running cucumber tag in Cucumber-Java for API testing?

I am using Cucumber-Java, along with TestNG. For grouping and executing in different environments, I am using cucumber tags.

The tags are given in feature level. Multiple tags have been specified for same feature. Like:

@regression-staging @regression-production
Feature: Add to cart

Scenario:
.
.
.

Same code is using for staging and production. And as build took I am using Maven. Since TestNG is used, the test is triggered from RunTestNGTest class that I wrote. Inside the RunTestNGTest, I have @BeforeSuite and @AfterSuite methods.

The test is run using mvn command

mvn test -Dcucumber.filter.tags=@regression-staging

or mvn test -Dcucumber.filter.tags=@regression-production

Is there anyway I can get which tag is currently running? (In my case, either one will be active at a time). I want to log which tag is currently using, and also want to use the same in the HTML report. I tried scenario.getSourceTagNames();, but that returns all the tags for the scenario, not the currently running one.



Solution 1:[1]

You can simply access cucumber.filter.tags from your code like you would access any other system property:

String myCurrentTag = System.getProperty("cucumber.filter.tags");

Now you can parse the value (split by commas or additionally remove @ symbol, etc.)

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 Alexey R.