как указать порядок выполнения сценариев?
Пример: Feature1 has Scenario1, Scenario2
Еxpected: сначала должен быть выполнен Scenario2, затем Scenario1
как выполнить pre-condition один раз на весь feature file?
Пример: Feature1 has Scenario1, Scenario2. There is pre-condition for both scenarios
Expected: cначала должен быть выполнен pre-condition затем сценарии. Порядок выполнения сценариев не важен
По первому вопросу - идей нет.
По второму вопросу - такой фичи в Cucumber JVM нет и не планируется. Не могу найти тред, но в какой-то дискуссии разработчик кукумбера прямо заявил, что считает это излишним, хотя много людей присоединились к просьбе.
Есть вариант - организовать всё самостоятельно, т.е. прописать шаг в Background и запоминать состояние: выполнялся или нет. Другая проблема - что выполненный в одной фиче, этот шаг будет считаться выполненным и в следующей. В этом случае, можно в Background передавать уникальный параметр - имя фичи.
То есть, получится примерно так:
Feature: Feature AAA
Background: # выполняется перед каждым сценарием
Given Precondition is executed for "Feature AAA"
# далее сценарии
И в шагах:
static Set<String> preconditionsExecuted = new HashSet<>();
@Given("^Precondition is executed for \"([^\"]*)\"$")
public void executePrecondition(String key) {
if (!preconditionsExecuted.contains(key)) {
runMyPreconditionForFeature(key);
preconditionsExecuted.add(key);
}
}
Только в отчетах этот шаг будет в каждом сценарии высвечиваться, что может быть не очень здорово.