Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 5 additions & 1 deletion shellkin
Original file line number Diff line number Diff line change
Expand Up @@ -365,6 +365,7 @@ feature_run() {
local section=
local feature_seen=0
local scenario_seen=0
local feature_output_started=0
local in_description=0
local in_doc_string=0
local failed=0
Expand Down Expand Up @@ -412,7 +413,6 @@ feature_run() {
section=feature
in_description=1
FEATURE_NAME=$FEATURE_LINE_NAME
output_feature_start "$FEATURE_NAME"
continue
;;
background)
Expand Down Expand Up @@ -768,6 +768,10 @@ feature_scenario_run() {
((TEST_SCENARIOS_TOTAL += 1))
FEATURE_PREVIOUS_STEP_TYPE=
SCENARIO_DEFERRED_COMMANDS=()
if [[ -n ${FEATURE_NAME:-} && ${feature_output_started:-1} -eq 0 ]]; then
output_feature_start "$FEATURE_NAME"
feature_output_started=1
fi
output_scenario_start "$scenario_number" "$scenario_name"

set +e
Expand Down
6 changes: 5 additions & 1 deletion src/lib/feature/core.sh
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ feature_run() {
local section=
local feature_seen=0
local scenario_seen=0
local feature_output_started=0
local in_description=0
local in_doc_string=0
local failed=0
Expand Down Expand Up @@ -52,7 +53,6 @@ feature_run() {
section=feature
in_description=1
FEATURE_NAME=$FEATURE_LINE_NAME
output_feature_start "$FEATURE_NAME"
continue
;;
background)
Expand Down Expand Up @@ -415,6 +415,10 @@ feature_scenario_run() {
((TEST_SCENARIOS_TOTAL += 1))
FEATURE_PREVIOUS_STEP_TYPE=
SCENARIO_DEFERRED_COMMANDS=()
if [[ -n ${FEATURE_NAME:-} && ${feature_output_started:-1} -eq 0 ]]; then
output_feature_start "$FEATURE_NAME"
feature_output_started=1
fi
output_scenario_start "$scenario_number" "$scenario_name"

set +e
Expand Down
30 changes: 30 additions & 0 deletions test/commands/test.bats
Original file line number Diff line number Diff line change
Expand Up @@ -393,6 +393,36 @@ EOF
assert_output_contains "1 scenario, 0 failing"
}

@test "shellkin omits headings for feature files with no selected scenarios" {
write_file features/first.feature <<'EOF'
Feature: First feature

Scenario: First
Then I write 'first'
EOF

write_file features/second.feature <<'EOF'
Feature: Second feature

Scenario: Second
Then I write 'second'
EOF

write_file features/step_definitions/core.sh <<'EOF'
@Then I write '{text}'
printf '%s' "$text" > "$TEST_ROOT/result.txt"
EOF

run "$SHELLKIN_REPO_ROOT/shellkin" --default-target "$TEST_ROOT/features" 2

[ "$status" -eq 0 ]
[ "$(cat "$TEST_ROOT/result.txt")" = "second" ]
[[ "$output" != *"Feature: First feature"* ]]
assert_output_contains "Feature: Second feature"
assert_output_contains "Scenario 2: Second"
assert_output_contains "1 scenario, 0 failing"
}

@test "shellkin runs only the selected scenario number from an explicit feature target" {
write_file features/sample.feature <<'EOF'
Feature: Select from file target
Expand Down
Loading