Linting Rules
Chutney enforces its rules with the linters. These are:
AvoidFullStop: Don’t have a full stop (period) at the end of step because it makes step reuse really hard.
AvoidOutlineForSingleExample: If you only have a single example in your example table, use a plain-old scenario instead.
AvoidScripting: You have a lot of steps, are you sure you’re not scripting the scenario when you should be specifying the behaviour of the system?
AvoidSplatStepsInBackground: The Background contains a splat step. It should only contain named steps.
AvoidSplatStepsInScenarios: The Scenario contains a splat step. It should only contain named steps.
AvoidTypographersQuotes: Cutting and pasting from Word documents? Is that pasting in curly-quotes instead of neutral ones you would type on a keyboard? Are you sure that’s what you want?
BackgroundDoesMoreThanSetup: Background in feature files should only do setup activity and so they should only contain Given
steps.
BackgroundRequiresMultipleScenarios: If you only have one scenario, don’t bother having a Background section.
BadScenarioName: You should avoid using words like ‘test’ or ‘check’ in your scenario names, instead you should define the behaviour of your system.
EmptyFeatureFile: The feature should have content and should avoid committing empty features to repositories.
FileNameDiffersFeatureName: The feature should have a name that follows the file name.
GivensAfterBackground: If you have a Background section and your scenario needs more preconditions then it should start immediately with an And
step and not another Given
.
InconsistentQuoting: Use either single quotation marks or double quotation marks around parameters but don’t use a mix of the two styles.
InvalidFileName: Make sure your file name is in snake case, not mixed case or with spaces.
InvalidStepFlow: Your scenarios should follow Given → When → Then, in that order.
MissingExampleName: If you have more than one example table in your scenario, they should each be given unique names.
MissingExampleTable: You are missing an example table. You should have at least one example table when using Scenario outlines.
MissingFeatureDescription: Your feature should have a value statement. These are usually in the form ‘As a… I want.. So that…’.
MissingFeatureName: You should give your features a descriptive name.
MissingScenarioName: You should name your scenarios and scenario outlines.
MissingScenarioOutline: You should use Scenario Outline instead of Scenario when there is an Examples table to indicate that this scenario will be run multiple times with different data.
MissingTestAction: You don’t have an action (a When
step) in your scenario.
MissingVerification: You don’t have a verification step (a Then
step) in your scenario.
RequiredTagsStartWith: Chutney can enforce a configurable naming prefix for your tags.
SameTagForDifferentCase: Don’t mix the case of tags which have already appeared. Cucumber tags are case sensitive. Since 3.1.0
SameTagForAllScenarios: You have the same tag for all you scenarios; move the tag to the feature level instead.
ScenarioNamesMatch: Chutney can enforce a naming convention for your scenario names.
TagUsedMultipleTimes: Chutney can warn if you have used a tag a lot with a feature.
TooClumsy: This is a very long scenario. Consider writing it more concisely.
TooLongStep: This is a very long step. Consider writing it more concisely.
TooManyDifferentTags: This feature has a lot of different tags.
TooManySteps: This feature has a lot of steps. Consider writing it more concisely.
TooManyTags: There are a lot of tags in this feature.
UniqueScenarioNames: You have duplicated a scenario name when they should be unique.
UnknownVariable: You are referencing a variable which doesn’t appear to be defined. This is a source of subtle errors.
UnusedVariable: You have a variable which you are not using.
UseBackground: You have a setup setup used in all of your scenarios. Move it to a Background section.
UseOutline: You have very similar scenarios. You should consider if they should be combined into a Scenario Outline.