File: issue0099.feature

package info (click to toggle)
behave 1.2.6-6
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 4,160 kB
  • sloc: python: 19,857; makefile: 137; sh: 18
file content (130 lines) | stat: -rw-r--r-- 4,229 bytes parent folder | download | duplicates (3)
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
        """