TAGS(Feature Level)

Feature level tags in Cucumber are tags applied directly above the Feature keyword in a .feature file. They apply to all scenarios and scenario outlines within that particular feature file. 


When you place a tag (e.g., @smoke, @regression, @login_feature) at the feature level, it's as if every scenario and scenario outline inside that feature automatically inherits that tag. This provides a convenient way to group and execute a collection of related scenarios without having to tag each one individually.

@Loginfeature
Feature: Login Functionality


@Smoke
Scenario: successfully login with valid details
Given user is on login page
When user enters "admin" and "pass1234"
Then user should land on the homepage

@Wip
Scenario: successfully login with invalid details
Given user is on login page
When user enters "wronguser" and "wrongpasswrd"
Then login error sholud be shown

@Sanity
Scenario: Check presense of login elements
Given user login form is displayed
Then username and password fields should be visible

=============

package Steps;
import io.cucumber.java.en.Given;
import io.cucumber.java.en.Then;
import io.cucumber.java.en.When;
public class Tag_Steps {
@Given("user is on login page")
public void user_is_on_login_page() {
System.out.println("user in loginpage");
}
@When("user enters {string} and {string}")
public void user_enters_and(String string1, String string2) {
System.out.println("User Entered details " +string1 +","+string2);
}
@Then("user should land on the homepage")
public void user_should_land_on_the_homepage() {
System.out.println("user landed in homepage");
}
@Then("login error sholud be shown")
public void login_error_sholud_be_shown() {
System.out.println("Login Error displayed");
}
@Given("user login form is displayed")
public void user_login_form_is_displayed() {
System.out.println("login form visible");
}
@Then("username and password fields should be visible")
public void login_fields_visible() {
System.out.println("username and password fields are visible");
}
}
===============
package testRunner;
import io.cucumber.testng.AbstractTestNGCucumberTests;
import io.cucumber.testng.CucumberOptions;

@CucumberOptions(features="src/test/java/Features", glue="Steps", monochrome=true,
tags ="@Loginfeature", plugin= {"pretty", "html:target/tags-reports.html"})
public class tagTestRunner extends AbstractTestNGCucumberTests {
}


Output:

@Loginfeature @Smoke

Scenario: successfully login with valid details # src/test/java/Features/loginTag.feature:5

user in loginpage

Given user is on login page # Steps.Tag_Steps.user_is_on_login_page()

User Entered details admin,pass1234

When user enters "admin" and "pass1234" # Steps.Tag_Steps.user_enters_and(java.lang.String,java.lang.String)

user landed in homepage

Then user should land on the homepage # Steps.Tag_Steps.user_should_land_on_the_homepage()


@Loginfeature @Wip

Scenario: successfully login with invalid details # src/test/java/Features/loginTag.feature:12

user in loginpage

Given user is on login page # Steps.Tag_Steps.user_is_on_login_page()

User Entered details wronguser,wrongpasswrd

When user enters "wronguser" and "wrongpasswrd" # Steps.Tag_Steps.user_enters_and(java.lang.String,java.lang.String)

Login Error displayed

Then login error sholud be shown # Steps.Tag_Steps.login_error_sholud_be_shown()


@Loginfeature @Sanity

Scenario: Check presense of login elements # src/test/java/Features/loginTag.feature:18

login form visible

Given user login form is displayed # Steps.Tag_Steps.user_login_form_is_displayed()

username and password fields are visible

Then username and password fields should be visible # Steps.Tag_Steps.login_fields_visible()

PASSED: io.cucumber.testng.AbstractTestNGCucumberTests.runScenario("successfully login with valid details", "Login Functionality")

Runs Cucumber Scenarios

PASSED: io.cucumber.testng.AbstractTestNGCucumberTests.runScenario("Check presense of login elements", "Login Functionality")

Runs Cucumber Scenarios

PASSED: io.cucumber.testng.AbstractTestNGCucumberTests.runScenario("successfully login with invalid details", "Login Functionality")

Runs Cucumber Scenarios


===============================================

Default test

Tests run: 1, Failures: 0, Skips: 0

===============================================



===============================================

Default suite

Total tests run: 3, Passes: 3, Failures: 0, Skips: 0

===============================================