1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130
|
@issue
Feature: Issue #99: Layout variation "a directory containing your feature files" is broken for running single features
. When I use a layout as described in the 1.2.2 documentation,
. I can only specify a whole directory of feature files to run.
. Specifying a single feature file results in an error from behave:
.
. $ behave -v tests/feature/webui/features/feature_under_test.feature
. ...
. Supplied path: "tests/feature/webui/features/feature_under_test.feature"
. Primary path is to a file so using its directory
. Trying base directory: .../tests/feature/webui/features
. Trying base directory: .../tests/feature/webui
. ERROR: Could not find "steps" directory in your specified path '.../tests/feature/webui/features'
. No steps directory in '.../tests/feature/webui/features'
.
. My directory layout is as follows:
.
. .../tests/feature/webui/
. +-- features/
. +-- steps/
. +-- environment.py
.
. SEE ALSO:
. * http://packages.python.org/behave/gherkin.html#layout-variations
Background:
Given a new working directory
And a file named "root/steps/steps.py" with:
"""
from behave import step
@step(u'a step passes')
def step_passes(context):
pass
"""
And a file named "root/features/alice.feature" with:
"""
Feature: Alice
Scenario:
Given a step passes
"""
And a file named "root/features/bob.feature" with:
"""
Feature: Bob
Scenario:
Given a step passes
"""
And a file named "root/features2/charly.feature" with:
"""
Feature: Charly
Scenario:
When a step passes
"""
Scenario: Run features with root directory
When I run "behave -f plain --no-timings root"
Then it should pass with:
"""
3 features passed, 0 failed, 0 skipped
3 scenarios passed, 0 failed, 0 skipped
3 steps passed, 0 failed, 0 skipped, 0 undefined
"""
And the command output should contain:
"""
Feature: Alice
Scenario:
Given a step passes ... passed
Feature: Bob
Scenario:
Given a step passes ... passed
Feature: Charly
Scenario:
When a step passes ... passed
"""
Scenario: Run features with root/features directory
When I run "behave -f plain --no-timings root/features"
Then it should pass with:
"""
2 features passed, 0 failed, 0 skipped
2 scenarios passed, 0 failed, 0 skipped
2 steps passed, 0 failed, 0 skipped, 0 undefined
"""
And the command output should contain:
"""
Feature: Alice
Scenario:
Given a step passes ... passed
Feature: Bob
Scenario:
Given a step passes ... passed
"""
Scenario: Run features with feature files
When I run "behave -f plain --no-timings root/features/alice.feature root/features2/charly.feature"
Then it should pass with:
"""
2 features passed, 0 failed, 0 skipped
2 scenarios passed, 0 failed, 0 skipped
2 steps passed, 0 failed, 0 skipped, 0 undefined
"""
And the command output should contain:
"""
Feature: Alice
Scenario:
Given a step passes ... passed
Feature: Charly
Scenario:
When a step passes ... passed
"""
Scenario: Run features with feature dir and feature files (other ordering)
When I run "behave -f plain --no-timings root/features2 root/features/alice.feature"
Then it should pass with:
"""
2 features passed, 0 failed, 0 skipped
2 scenarios passed, 0 failed, 0 skipped
2 steps passed, 0 failed, 0 skipped, 0 undefined
"""
And the command output should contain:
"""
Feature: Charly
Scenario:
When a step passes ... passed
Feature: Alice
Scenario:
Given a step passes ... passed
"""
|