@... tags should only be used for filtering (not functionality hooks).
The Smokey job in Jenkins has an option to filter scenarios by application, so that we can avoid running the entire test suite when only some scenarios are relevant to a change. To associate tests with an app, you need to tag the relevant scenarios (or entire feature) with
Important: make sure
<app_name> matches against the list of apps for the Deploy_App job. This is so the filtering will work with the Continuous Deployment pipeline.
All features should run in all environments. Sometimes this isn't possible e.g.
The actual functionality only exists in Production. Tag the feature or scenario with
@notstagingso it doesn't run in these environments i.e. its only runs in Production.
The functionality is being replatformed. Tag the feature or scenario with
@notreplatformingdepending on whether you expect it to work in the new platform.
This will stop a feature or scenario from running in all environments.
Only use this tag if you know you will re-enable it soon. Otherwise, it's clearer to just remove it - either way you will need to make a PR to restore it, so the amount of work is similar.
This will stop a feature or scenario running on a local machine. Use this tag if there's a network policy in place that prevents your local machine from accessing protected functionality.
Before adding this tag, check if you could write a better test. It's hard to maintain tests that can't be run locally, so only use this tag if there's no practical way to fix the access issue.