rspec-core 3.0.0.beta2 → 3.0.0.rc1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (201) hide show
  1. checksums.yaml +7 -0
  2. checksums.yaml.gz.sig +0 -0
  3. data.tar.gz.sig +0 -0
  4. data/.yardopts +1 -0
  5. data/Changelog.md +297 -57
  6. data/README.md +16 -13
  7. data/lib/rspec/core.rb +55 -84
  8. data/lib/rspec/core/backport_random.rb +35 -3
  9. data/lib/rspec/core/backtrace_formatter.rb +4 -13
  10. data/lib/rspec/core/configuration.rb +330 -114
  11. data/lib/rspec/core/configuration_options.rb +38 -22
  12. data/lib/rspec/core/drb.rb +111 -0
  13. data/lib/rspec/core/dsl.rb +8 -2
  14. data/lib/rspec/core/example.rb +203 -94
  15. data/lib/rspec/core/example_group.rb +344 -316
  16. data/lib/rspec/core/filter_manager.rb +135 -90
  17. data/lib/rspec/core/flat_map.rb +1 -0
  18. data/lib/rspec/core/formatters.rb +50 -14
  19. data/lib/rspec/core/formatters/base_formatter.rb +32 -138
  20. data/lib/rspec/core/formatters/base_text_formatter.rb +32 -253
  21. data/lib/rspec/core/formatters/console_codes.rb +65 -0
  22. data/lib/rspec/core/formatters/deprecation_formatter.rb +24 -15
  23. data/lib/rspec/core/formatters/documentation_formatter.rb +7 -10
  24. data/lib/rspec/core/formatters/helpers.rb +15 -9
  25. data/lib/rspec/core/formatters/html_formatter.rb +17 -16
  26. data/lib/rspec/core/formatters/html_printer.rb +1 -0
  27. data/lib/rspec/core/formatters/json_formatter.rb +18 -20
  28. data/lib/rspec/core/formatters/profile_formatter.rb +67 -0
  29. data/lib/rspec/core/formatters/progress_formatter.rb +6 -7
  30. data/lib/rspec/core/formatters/snippet_extractor.rb +8 -6
  31. data/lib/rspec/core/hooks.rb +131 -125
  32. data/lib/rspec/core/memoized_helpers.rb +31 -26
  33. data/lib/rspec/core/metadata.rb +277 -184
  34. data/lib/rspec/core/metadata_filter.rb +86 -0
  35. data/lib/rspec/core/minitest_assertions_adapter.rb +28 -0
  36. data/lib/rspec/core/mocking_adapters/flexmock.rb +1 -1
  37. data/lib/rspec/core/mocking_adapters/mocha.rb +1 -1
  38. data/lib/rspec/core/mocking_adapters/null.rb +1 -1
  39. data/lib/rspec/core/mocking_adapters/rr.rb +2 -1
  40. data/lib/rspec/core/mocking_adapters/rspec.rb +1 -1
  41. data/lib/rspec/core/notifications.rb +435 -24
  42. data/lib/rspec/core/option_parser.rb +16 -25
  43. data/lib/rspec/core/ordering.rb +3 -1
  44. data/lib/rspec/core/pending.rb +57 -33
  45. data/lib/rspec/core/project_initializer.rb +2 -0
  46. data/lib/rspec/core/project_initializer/spec_helper.rb +5 -4
  47. data/lib/rspec/core/rake_task.rb +45 -20
  48. data/lib/rspec/core/reporter.rb +50 -22
  49. data/lib/rspec/core/ruby_project.rb +1 -0
  50. data/lib/rspec/core/runner.rb +93 -39
  51. data/lib/rspec/core/shared_context.rb +7 -5
  52. data/lib/rspec/core/shared_example_group.rb +85 -77
  53. data/lib/rspec/core/test_unit_assertions_adapter.rb +30 -0
  54. data/lib/rspec/core/version.rb +3 -1
  55. data/lib/rspec/core/warnings.rb +35 -17
  56. data/lib/rspec/core/world.rb +57 -5
  57. metadata +56 -369
  58. metadata.gz.sig +3 -3
  59. data/features/README.md +0 -13
  60. data/features/Upgrade.md +0 -352
  61. data/features/command_line/README.md +0 -25
  62. data/features/command_line/dry_run.feature +0 -29
  63. data/features/command_line/example_name_option.feature +0 -97
  64. data/features/command_line/exit_status.feature +0 -82
  65. data/features/command_line/fail_fast.feature +0 -26
  66. data/features/command_line/format_option.feature +0 -75
  67. data/features/command_line/init.feature +0 -57
  68. data/features/command_line/line_number_appended_to_path.feature +0 -140
  69. data/features/command_line/line_number_option.feature +0 -58
  70. data/features/command_line/order.feature +0 -25
  71. data/features/command_line/pattern_option.feature +0 -49
  72. data/features/command_line/rake_task.feature +0 -122
  73. data/features/command_line/randomization.feature +0 -63
  74. data/features/command_line/require_option.feature +0 -43
  75. data/features/command_line/ruby.feature +0 -23
  76. data/features/command_line/tag.feature +0 -98
  77. data/features/command_line/warnings_option.feature +0 -29
  78. data/features/configuration/alias_example_to.feature +0 -39
  79. data/features/configuration/backtrace_exclusion_patterns.feature +0 -105
  80. data/features/configuration/custom_settings.feature +0 -84
  81. data/features/configuration/default_path.feature +0 -38
  82. data/features/configuration/deprecation_stream.feature +0 -58
  83. data/features/configuration/enable_global_dsl.feature +0 -54
  84. data/features/configuration/fail_fast.feature +0 -77
  85. data/features/configuration/failure_exit_code.feature +0 -36
  86. data/features/configuration/order_and_seed.feature +0 -3
  87. data/features/configuration/output_stream.feature +0 -24
  88. data/features/configuration/overriding_global_ordering.feature +0 -93
  89. data/features/configuration/pattern.feature +0 -38
  90. data/features/configuration/profile.feature +0 -220
  91. data/features/configuration/read_options_from_file.feature +0 -90
  92. data/features/configuration/run_all_when_everything_filtered.feature +0 -76
  93. data/features/example_groups/aliasing.feature +0 -48
  94. data/features/example_groups/basic_structure.feature +0 -55
  95. data/features/example_groups/shared_context.feature +0 -74
  96. data/features/example_groups/shared_examples.feature +0 -286
  97. data/features/expectation_framework_integration/configure_expectation_framework.feature +0 -102
  98. data/features/filtering/exclusion_filters.feature +0 -135
  99. data/features/filtering/if_and_unless.feature +0 -138
  100. data/features/filtering/inclusion_filters.feature +0 -101
  101. data/features/formatters/configurable_colors.feature +0 -31
  102. data/features/formatters/custom_formatter.feature +0 -68
  103. data/features/formatters/json_formatter.feature +0 -30
  104. data/features/formatters/regression_tests.feature +0 -95
  105. data/features/formatters/text_formatter.feature +0 -46
  106. data/features/helper_methods/arbitrary_methods.feature +0 -40
  107. data/features/helper_methods/let.feature +0 -50
  108. data/features/helper_methods/modules.feature +0 -146
  109. data/features/hooks/around_hooks.feature +0 -344
  110. data/features/hooks/before_and_after_hooks.feature +0 -427
  111. data/features/hooks/filtering.feature +0 -232
  112. data/features/metadata/current_example.feature +0 -56
  113. data/features/metadata/described_class.feature +0 -17
  114. data/features/metadata/user_defined.feature +0 -100
  115. data/features/mock_framework_integration/use_any_framework.feature +0 -106
  116. data/features/mock_framework_integration/use_flexmock.feature +0 -94
  117. data/features/mock_framework_integration/use_mocha.feature +0 -95
  118. data/features/mock_framework_integration/use_rr.feature +0 -96
  119. data/features/mock_framework_integration/use_rspec.feature +0 -95
  120. data/features/pending_and_skipped_examples/README.md +0 -3
  121. data/features/pending_and_skipped_examples/pending_examples.feature +0 -118
  122. data/features/pending_and_skipped_examples/skipped_examples.feature +0 -106
  123. data/features/spec_files/arbitrary_file_suffix.feature +0 -13
  124. data/features/step_definitions/additional_cli_steps.rb +0 -83
  125. data/features/subject/explicit_subject.feature +0 -101
  126. data/features/subject/implicit_subject.feature +0 -63
  127. data/features/subject/one_liner_syntax.feature +0 -71
  128. data/features/support/env.rb +0 -21
  129. data/features/support/require_expect_syntax_in_aruba_specs.rb +0 -16
  130. data/features/support/rubinius.rb +0 -6
  131. data/lib/rspec/core/command_line.rb +0 -35
  132. data/lib/rspec/core/drb_command_line.rb +0 -26
  133. data/lib/rspec/core/drb_options.rb +0 -87
  134. data/lib/rspec/core/formatters/legacy_formatter.rb +0 -227
  135. data/lib/rspec/core/shared_example_group/collection.rb +0 -27
  136. data/spec/command_line/order_spec.rb +0 -211
  137. data/spec/rspec/core/backtrace_formatter_spec.rb +0 -230
  138. data/spec/rspec/core/command_line_spec.rb +0 -112
  139. data/spec/rspec/core/command_line_spec_output.txt +0 -0
  140. data/spec/rspec/core/configuration_options_spec.rb +0 -409
  141. data/spec/rspec/core/configuration_spec.rb +0 -1479
  142. data/spec/rspec/core/drb_command_line_spec.rb +0 -102
  143. data/spec/rspec/core/drb_options_spec.rb +0 -193
  144. data/spec/rspec/core/dsl_spec.rb +0 -88
  145. data/spec/rspec/core/example_group_spec.rb +0 -1533
  146. data/spec/rspec/core/example_spec.rb +0 -642
  147. data/spec/rspec/core/filter_manager_spec.rb +0 -229
  148. data/spec/rspec/core/formatters/base_formatter_spec.rb +0 -64
  149. data/spec/rspec/core/formatters/base_text_formatter_spec.rb +0 -303
  150. data/spec/rspec/core/formatters/deprecation_formatter_spec.rb +0 -208
  151. data/spec/rspec/core/formatters/documentation_formatter_spec.rb +0 -75
  152. data/spec/rspec/core/formatters/helpers_spec.rb +0 -104
  153. data/spec/rspec/core/formatters/html_formatted-2.1.0.html +0 -392
  154. data/spec/rspec/core/formatters/html_formatted.html +0 -397
  155. data/spec/rspec/core/formatters/html_formatter_spec.rb +0 -122
  156. data/spec/rspec/core/formatters/json_formatter_spec.rb +0 -206
  157. data/spec/rspec/core/formatters/legacy_formatter_spec.rb +0 -137
  158. data/spec/rspec/core/formatters/progress_formatter_spec.rb +0 -43
  159. data/spec/rspec/core/formatters/snippet_extractor_spec.rb +0 -26
  160. data/spec/rspec/core/formatters_spec.rb +0 -120
  161. data/spec/rspec/core/hooks_filtering_spec.rb +0 -227
  162. data/spec/rspec/core/hooks_spec.rb +0 -294
  163. data/spec/rspec/core/memoized_helpers_spec.rb +0 -495
  164. data/spec/rspec/core/metadata_spec.rb +0 -491
  165. data/spec/rspec/core/option_parser_spec.rb +0 -262
  166. data/spec/rspec/core/ordering_spec.rb +0 -102
  167. data/spec/rspec/core/pending_example_spec.rb +0 -117
  168. data/spec/rspec/core/pending_spec.rb +0 -8
  169. data/spec/rspec/core/project_initializer_spec.rb +0 -73
  170. data/spec/rspec/core/rake_task_spec.rb +0 -146
  171. data/spec/rspec/core/random_spec.rb +0 -47
  172. data/spec/rspec/core/reporter_spec.rb +0 -155
  173. data/spec/rspec/core/resources/a_bar.rb +0 -0
  174. data/spec/rspec/core/resources/a_foo.rb +0 -0
  175. data/spec/rspec/core/resources/a_spec.rb +0 -1
  176. data/spec/rspec/core/resources/custom_example_group_runner.rb +0 -14
  177. data/spec/rspec/core/resources/formatter_specs.rb +0 -58
  178. data/spec/rspec/core/resources/utf8_encoded.rb +0 -8
  179. data/spec/rspec/core/rspec_matchers_spec.rb +0 -45
  180. data/spec/rspec/core/ruby_project_spec.rb +0 -26
  181. data/spec/rspec/core/runner_spec.rb +0 -151
  182. data/spec/rspec/core/shared_context_spec.rb +0 -102
  183. data/spec/rspec/core/shared_example_group/collection_spec.rb +0 -57
  184. data/spec/rspec/core/shared_example_group_spec.rb +0 -114
  185. data/spec/rspec/core/warnings_spec.rb +0 -29
  186. data/spec/rspec/core/world_spec.rb +0 -142
  187. data/spec/rspec/core_spec.rb +0 -91
  188. data/spec/spec_helper.rb +0 -160
  189. data/spec/support/config_options_helper.rb +0 -13
  190. data/spec/support/formatter_support.rb +0 -83
  191. data/spec/support/helper_methods.rb +0 -26
  192. data/spec/support/isolate_load_path_mutation.rb +0 -5
  193. data/spec/support/isolated_directory.rb +0 -10
  194. data/spec/support/isolated_home_directory.rb +0 -16
  195. data/spec/support/legacy_formatter_using_sub_classing_example.rb +0 -87
  196. data/spec/support/matchers.rb +0 -85
  197. data/spec/support/mathn_integration_support.rb +0 -12
  198. data/spec/support/old_style_formatter_example.rb +0 -69
  199. data/spec/support/shared_example_groups.rb +0 -13
  200. data/spec/support/spec_files.rb +0 -44
  201. data/spec/support/stderr_splitter.rb +0 -36
@@ -1,49 +0,0 @@
1
- Feature: pattern option
2
-
3
- By default, RSpec loads files matching the pattern:
4
-
5
- "spec/**/*_spec.rb"
6
-
7
- Use the `--pattern` option to declare a different pattern.
8
-
9
- Scenario: default pattern
10
- Given a file named "spec/example_spec.rb" with:
11
- """ruby
12
- describe "addition" do
13
- it "adds things" do
14
- expect(1 + 2).to eq(3)
15
- end
16
- end
17
- """
18
- When I run `rspec`
19
- Then the output should contain "1 example, 0 failures"
20
-
21
- Scenario: override the default pattern on the command line
22
- Given a file named "spec/example.spec" with:
23
- """ruby
24
- describe "addition" do
25
- it "adds things" do
26
- expect(1 + 2).to eq(3)
27
- end
28
- end
29
- """
30
- When I run `rspec --pattern "spec/**/*.spec"`
31
- Then the output should contain "1 example, 0 failures"
32
-
33
- Scenario: override the default pattern in configuration
34
- Given a file named "spec/spec_helper.rb" with:
35
- """ruby
36
- RSpec.configure do |config|
37
- config.pattern << ',**/*.spec'
38
- end
39
- """
40
- And a file named "spec/example.spec" with:
41
- """ruby
42
- describe "addition" do
43
- it "adds things" do
44
- expect(1 + 2).to eq(3)
45
- end
46
- end
47
- """
48
- When I run `rspec -rspec_helper`
49
- Then the output should contain "1 example, 0 failures"
@@ -1,122 +0,0 @@
1
- Feature: rake task
2
-
3
- RSpec ships with a rake task with a number of useful options
4
-
5
- Scenario: default options with passing spec (prints command and exit status is 0)
6
- Given a file named "Rakefile" with:
7
- """ruby
8
- require 'rspec/core/rake_task'
9
-
10
- RSpec::Core::RakeTask.new(:spec)
11
-
12
- task :default => :spec
13
- """
14
- And a file named "spec/thing_spec.rb" with:
15
- """ruby
16
- describe "something" do
17
- it "does something" do
18
- # pass
19
- end
20
- end
21
- """
22
- When I run `rake`
23
- Then the output should match /(ruby|rbx) -S rspec/
24
- Then the exit status should be 0
25
-
26
- Scenario: default options with failing spec (exit status is 1)
27
- Given a file named "Rakefile" with:
28
- """ruby
29
- require 'rspec/core/rake_task'
30
-
31
- RSpec::Core::RakeTask.new(:spec)
32
-
33
- task :default => :spec
34
- """
35
- And a file named "spec/thing_spec.rb" with:
36
- """ruby
37
- describe "something" do
38
- it "does something" do
39
- fail
40
- end
41
- end
42
- """
43
- When I run `rake`
44
- Then the exit status should be 1
45
-
46
- Scenario: fail_on_error = false with failing spec (exit status is 0)
47
- Given a file named "Rakefile" with:
48
- """ruby
49
- require 'rspec/core/rake_task'
50
-
51
- RSpec::Core::RakeTask.new(:spec) do |t|
52
- t.fail_on_error = false
53
- end
54
-
55
- task :default => :spec
56
- """
57
- And a file named "spec/thing_spec.rb" with:
58
- """ruby
59
- describe "something" do
60
- it "does something" do
61
- fail
62
- end
63
- end
64
- """
65
- When I run `rake`
66
- Then the exit status should be 0
67
-
68
- Scenario: rspec_opts is specified in order to pass args to the rspec command
69
- Given a file named "Rakefile" with:
70
- """ruby
71
- require 'rspec/core/rake_task'
72
-
73
- RSpec::Core::RakeTask.new(:spec) do |t|
74
- t.rspec_opts = "--tag fast"
75
- end
76
- """
77
- And a file named "spec/thing_spec.rb" with:
78
- """ruby
79
- describe "something" do
80
- it "has a tag", :fast => true do
81
- # pass
82
- end
83
-
84
- it "does not have a tag" do
85
- fail
86
- end
87
- end
88
- """
89
- When I run `rake spec`
90
- Then the exit status should be 0
91
- Then the output should match:
92
- """
93
- (ruby|rbx) -S rspec ./spec/thing_spec.rb --tag fast
94
- """
95
-
96
- Scenario: rspec_opts is specified using arguments to the rake task
97
- Given a file named "Rakefile" with:
98
- """ruby
99
- require 'rspec/core/rake_task'
100
-
101
- RSpec::Core::RakeTask.new(:spec, :tag) do |t, task_args|
102
- t.rspec_opts = "--tag #{task_args[:tag]}"
103
- end
104
- """
105
- And a file named "spec/thing_spec.rb" with:
106
- """ruby
107
- describe "something" do
108
- it "has a tag", :fast => true do
109
- # pass
110
- end
111
-
112
- it "does not have a tag" do
113
- fail
114
- end
115
- end
116
- """
117
- When I run `rake spec[fast]`
118
- Then the exit status should be 0
119
- Then the output should match:
120
- """
121
- (ruby|rbx) -S rspec ./spec/thing_spec.rb --tag fast
122
- """
@@ -1,63 +0,0 @@
1
- Feature: Randomization can be reproduced across test runs
2
-
3
- In Ruby, randomness is seeded by calling `srand`
4
- and passing it the seed that you want to use.
5
- By doing this, subsequent calls to `rand`, `shuffle`, `sample`, etc.
6
- will all be randomized the same way given the same seed is passed to `srand`.
7
-
8
- RSpec takes care not to seed randomization directly
9
- when taking action that involves randomness
10
- (such as random ordering of examples).
11
-
12
- Since RSpec does not ever invoke `srand`, this means that you
13
- are free to choose which, if any, mechanism is used to seed randomization.
14
-
15
- There is an example below of how to use RSpec's seed for this purpose
16
- if you wish to do so.
17
-
18
- If you would like to manage seeding randomization without any help from RSpec,
19
- please keep the following things in mind:
20
-
21
- * The seed should never be hard-coded.
22
-
23
- The first example below only does this to show that seeding randomization
24
- with a seed other than the one used by RSpec
25
- will correctly seed randomization.
26
-
27
- * Report the seed that was chosen.
28
-
29
- The randomization that was used for a given test run can not be reproduced
30
- if noone knows what seed was used to begin with.
31
-
32
- * Provide a mechanism to feed the seed into the tests.
33
-
34
- Without this, the call to `srand` will have to be hard-coded any time
35
- it is necessary to replicate a given test run's randomness.
36
-
37
- Background:
38
- Given a file named "spec/random_spec.rb" with:
39
- """ruby
40
- require 'spec_helper'
41
-
42
- describe 'randomized example' do
43
- it 'prints random numbers' do
44
- puts 5.times.map { rand(99) }.join("-")
45
- end
46
- end
47
- """
48
-
49
- Scenario: Specifying a seed using srand provides predictable randomization
50
- Given a file named "spec/spec_helper.rb" with:
51
- """ruby
52
- srand 123
53
- """
54
- When I run `rspec`
55
- Then the output should contain "66-92-98-17-83"
56
-
57
- Scenario: Passing the RSpec seed to srand provides predictable randomization
58
- Given a file named "spec/spec_helper.rb" with:
59
- """ruby
60
- srand RSpec.configuration.seed
61
- """
62
- When I run `rspec --seed 123`
63
- Then the output should contain "66-92-98-17-83"
@@ -1,43 +0,0 @@
1
- Feature: --require option
2
-
3
- Use the `--require` (or `-r`) option to specify a file to require
4
- before running specs.
5
-
6
- Scenario: using the --require option
7
- Given a file named "logging_formatter.rb" with:
8
- """ruby
9
- require "rspec/core/formatters/base_text_formatter"
10
- require 'delegate'
11
-
12
- class LoggingFormatter < RSpec::Core::Formatters::BaseTextFormatter
13
- def initialize(output)
14
- super LoggingIO.new(output)
15
- end
16
-
17
- class LoggingIO < SimpleDelegator
18
- def initialize(output)
19
- @file = File.new('rspec.log', 'w')
20
- super
21
- end
22
-
23
- def puts(*args)
24
- [@file, __getobj__].each { |out| out.puts(*args) }
25
- end
26
-
27
- def close
28
- @file.close
29
- end
30
- end
31
- end
32
- """
33
- And a file named "spec/example_spec.rb" with:
34
- """ruby
35
- describe "an embarassing situation" do
36
- it "happens to everyone" do
37
- end
38
- end
39
- """
40
- When I run `rspec --require ./logging_formatter.rb --format LoggingFormatter`
41
- Then the output should contain "1 example, 0 failures"
42
- And the file "rspec.log" should contain "1 example, 0 failures"
43
- And the exit status should be 0
@@ -1,23 +0,0 @@
1
- Feature: run with ruby command
2
-
3
- You can use the `ruby` command to run specs. You just need to require
4
- `rspec/autorun`.
5
-
6
- Generally speaking, you're better off using the `rspec` command, which
7
- avoids the complexity of `rspec/autorun` (e.g. no `at_exit` hook needed!),
8
- but some tools only work with the `ruby` command.
9
-
10
- Scenario: Require `rspec/autorun` from a spec file
11
- Given a file named "example_spec.rb" with:
12
- """ruby
13
- require 'rspec/autorun'
14
-
15
- RSpec.describe 1 do
16
- it "is < 2" do
17
- expect(1).to be < 2
18
- end
19
- end
20
- """
21
- When I run `ruby example_spec.rb`
22
- Then the output should contain "1 example, 0 failures"
23
-
@@ -1,98 +0,0 @@
1
- Feature: --tag option
2
-
3
- Use the --tag (or -t) option to filter the examples by tags.
4
-
5
- The tag can be a simple name or a name:value pair. In the first case,
6
- examples with :name => true will be filtered. In the second case, examples
7
- with :name => value will be filtered, where value is always a string. In
8
- both cases, name is converted to a symbol.
9
-
10
- Tags can also be used to exclude examples by adding a ~ before the tag. For
11
- example ~tag will exclude all examples marked with :tag => true and
12
- ~tag:value will exclude all examples marked with :tag => value.
13
-
14
- To be compatible with the Cucumber syntax, tags can optionally start with
15
- an @ symbol, which will be ignored.
16
-
17
- Background:
18
- Given a file named "tagged_spec.rb" with:
19
- """ruby
20
- describe "group with tagged specs" do
21
- it "example I'm working now", :focus => true do; end
22
- it "special example with string", :type => 'special' do; end
23
- it "special example with symbol", :type => :special do; end
24
- it "slow example", :skip => true do; end
25
- it "ordinary example", :speed => 'slow' do; end
26
- it "untagged example" do; end
27
- end
28
- """
29
-
30
- Scenario: filter examples with non-existent tag
31
- When I run `rspec . --tag mytag`
32
- Then the process should succeed even though no examples were run
33
-
34
- Scenario: filter examples with a simple tag
35
- When I run `rspec . --tag focus`
36
- Then the output should contain "include {:focus=>true}"
37
- And the examples should all pass
38
-
39
- Scenario: filter examples with a simple tag and @
40
- When I run `rspec . --tag @focus`
41
- Then the output should contain "include {:focus=>true}"
42
- Then the examples should all pass
43
-
44
- Scenario: filter examples with a name:value tag
45
- When I run `rspec . --tag type:special`
46
- Then the output should contain:
47
- """
48
- include {:type=>"special"}
49
- """
50
- And the output should contain "2 examples"
51
- And the examples should all pass
52
-
53
- Scenario: filter examples with a name:value tag and @
54
- When I run `rspec . --tag @type:special`
55
- Then the output should contain:
56
- """
57
- include {:type=>"special"}
58
- """
59
- And the examples should all pass
60
-
61
- Scenario: exclude examples with a simple tag
62
- When I run `rspec . --tag ~skip`
63
- Then the output should contain "exclude {:skip=>true}"
64
- Then the examples should all pass
65
-
66
- Scenario: exclude examples with a simple tag and @
67
- When I run `rspec . --tag ~@skip`
68
- Then the output should contain "exclude {:skip=>true}"
69
- Then the examples should all pass
70
-
71
- Scenario: exclude examples with a name:value tag
72
- When I run `rspec . --tag ~speed:slow`
73
- Then the output should contain:
74
- """
75
- exclude {:speed=>"slow"}
76
- """
77
- Then the examples should all pass
78
-
79
- Scenario: exclude examples with a name:value tag and @
80
- When I run `rspec . --tag ~@speed:slow`
81
- Then the output should contain:
82
- """
83
- exclude {:speed=>"slow"}
84
- """
85
- Then the examples should all pass
86
-
87
- Scenario: filter examples with a simple tag, exclude examples with another tag
88
- When I run `rspec . --tag focus --tag ~skip`
89
- Then the output should contain "include {:focus=>true}"
90
- And the output should contain "exclude {:skip=>true}"
91
- And the examples should all pass
92
-
93
- Scenario: exclude examples with multiple tags
94
- When I run `rspec . --tag ~skip --tag ~speed:slow`
95
- Then the output should contain one of the following:
96
- | exclude {:skip=>true, :speed=>"slow"} |
97
- | exclude {:speed=>"slow", :skip=>true} |
98
- Then the examples should all pass
@@ -1,29 +0,0 @@
1
- Feature: run with warnings enabled
2
-
3
- You can use the `--warnings` option to run specs with warnings enabled
4
-
5
- @unsupported-on-rbx
6
- Scenario:
7
- Given a file named "example_spec.rb" with:
8
- """ruby
9
- describe do
10
- it 'generates warning' do
11
- @undefined
12
- end
13
- end
14
- """
15
- When I run `rspec --warnings example_spec.rb`
16
- Then the output should contain "warning"
17
-
18
- @unsupported-on-rbx
19
- Scenario:
20
- Given a file named "example_spec.rb" with:
21
- """ruby
22
- describe do
23
- it 'generates warning' do
24
- @undefined
25
- end
26
- end
27
- """
28
- When I run `rspec example_spec.rb`
29
- Then the output should not contain "warning"
@@ -1,39 +0,0 @@
1
- Feature: alias_example_to
2
-
3
- Use `config.alias_example_to` to create new example group methods
4
- that define examples with the configured metadata. You can also
5
- specify metadata using only symbols.
6
-
7
- Scenario: Use alias_example_to to define pending example
8
- Given a file named "alias_example_to_spec.rb" with:
9
- """ruby
10
- RSpec.configure do |c|
11
- c.alias_example_to :pit, :pending => "Pit alias used"
12
- end
13
-
14
- describe "an example group" do
15
- pit "does something later on" do
16
- fail "not implemented yet"
17
- end
18
- end
19
- """
20
- When I run `rspec alias_example_to_spec.rb --format doc`
21
- Then the output should contain "does something later on (PENDING: Pit alias used)"
22
- And the output should contain "0 failures"
23
-
24
- Scenario: use symbols as metadata
25
- Given a file named "use_symbols_as_metadata_spec.rb" with:
26
- """ruby
27
- RSpec.configure do |c|
28
- c.alias_example_to :pit, :pending
29
- end
30
-
31
- describe "an example group" do
32
- pit "does something later on" do
33
- fail "not implemented yet"
34
- end
35
- end
36
- """
37
- When I run `rspec use_symbols_as_metadata_spec.rb --format doc`
38
- Then the output should contain "does something later on (PENDING: No reason given)"
39
- And the output should contain "0 failures"