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,3 +0,0 @@
1
- Feature: set the order and/or seed
2
-
3
- You can set the order to run specs and specify a seed if you are running the specs using the 'random' ordering. See <a href='../command_line/order.feature'>the documentation on the --order command line option</a> for more on this.
@@ -1,24 +0,0 @@
1
- Feature: output_stream
2
-
3
- Define a custom output stream (default `$stdout`). Aliases: `:output`, `:out`.
4
-
5
- RSpec.configure { |c| c.output_stream = File.open('saved_output', 'w') }
6
-
7
- Background:
8
- Given a file named "spec/spec_helper.rb" with:
9
- """ruby
10
- RSpec.configure {|c| c.output_stream = File.open('saved_output', 'w') }
11
- """
12
-
13
- Scenario: redirecting output
14
- Given a file named "spec/example_spec.rb" with:
15
- """ruby
16
- require 'spec_helper'
17
- describe "an example" do
18
- it "passes" do
19
- true
20
- end
21
- end
22
- """
23
- When I run `rspec spec/example_spec.rb`
24
- Then the file "saved_output" should contain "1 example, 0 failures"
@@ -1,93 +0,0 @@
1
- Feature: Overriding global ordering
2
-
3
- You can customize how RSpec orders examples and example groups.
4
- For an individual group, you can control it by tagging it with
5
- `:order` metadata:
6
-
7
- * `:defined` runs the examples (and sub groups) in defined order.
8
- * `:random` runs them in random order.
9
-
10
- If you have more specialized needs, you can register your own ordering
11
- using the `register_ordering` configuration option. If you register
12
- an ordering as `:global`, it will be the global default, used by all
13
- groups that do not have `:order` metadata (and by RSpec to order the
14
- top-level groups).
15
-
16
- Scenario: running a specific examples group in order
17
- Given a file named "order_dependent_spec.rb" with:
18
- """ruby
19
- describe "examples only pass when they are run in order", :order => :defined do
20
- before(:all) { @list = [] }
21
-
22
- it "passes when run first" do
23
- @list << 1
24
- expect(@list).to eq([1])
25
- end
26
-
27
- it "passes when run second" do
28
- @list << 2
29
- expect(@list).to eq([1, 2])
30
- end
31
-
32
- it "passes when run third" do
33
- @list << 3
34
- expect(@list).to eq([1, 2, 3])
35
- end
36
- end
37
- """
38
-
39
- When I run `rspec order_dependent_spec.rb --order random:1`
40
- Then the examples should all pass
41
-
42
- Scenario: Registering a custom ordering
43
- Given a file named "register_custom_ordering_spec.rb" with:
44
- """ruby
45
- RSpec.configure do |rspec|
46
- rspec.register_ordering(:reverse) do |items|
47
- items.reverse
48
- end
49
- end
50
-
51
- describe "A group that must run in reverse order", :order => :reverse do
52
- before(:all) { @list = [] }
53
-
54
- it "passes when run second" do
55
- @list << 2
56
- expect(@list).to eq([1, 2])
57
- end
58
-
59
- it "passes when run first" do
60
- @list << 1
61
- expect(@list).to eq([1])
62
- end
63
- end
64
- """
65
- When I run `rspec register_custom_ordering_spec.rb`
66
- Then the examples should all pass
67
-
68
- Scenario: Using a custom global ordering
69
- Given a file named "register_global_ordering_spec.rb" with:
70
- """ruby
71
- RSpec.configure do |rspec|
72
- rspec.register_ordering(:global) do |items|
73
- items.reverse
74
- end
75
- end
76
-
77
- describe "A group without :order metadata" do
78
- before(:all) { @list = [] }
79
-
80
- it "passes when run second" do
81
- @list << 2
82
- expect(@list).to eq([1, 2])
83
- end
84
-
85
- it "passes when run first" do
86
- @list << 1
87
- expect(@list).to eq([1])
88
- end
89
- end
90
- """
91
- When I run `rspec register_global_ordering_spec.rb`
92
- Then the examples should all pass
93
-
@@ -1,38 +0,0 @@
1
- Feature: pattern
2
-
3
- Use the pattern option to tell RSpec to look for specs in files that match a pattern other than "**/*_spec.rb".
4
-
5
- Background:
6
- Given a file named "spec/example_spec.rb" with:
7
- """ruby
8
- describe "two specs here" do
9
- it "passes" do
10
- end
11
-
12
- it "passes too" do
13
- end
14
- end
15
- """
16
- And a file named "spec/example_test.rb" with:
17
- """ruby
18
- describe "only one spec" do
19
- it "passes" do
20
- end
21
- end
22
- """
23
-
24
- Scenario: by default, RSpec runs files that match "**/*_spec.rb"
25
- When I run `rspec`
26
- Then the output should contain "2 examples, 0 failures"
27
-
28
- Scenario: the --pattern flag makes RSpec run files matching the specified pattern and ignore the default pattern
29
- When I run `rspec -P "**/*_test.rb"`
30
- Then the output should contain "1 example, 0 failures"
31
-
32
- Scenario: the --pattern flag can be used to pass in multiple patterns, separated by comma
33
- When I run `rspec -P "**/*_test.rb,**/*_spec.rb"`
34
- Then the output should contain "3 examples, 0 failures"
35
-
36
- Scenario: the --pattern flag accepts shell style glob unions
37
- When I run `rspec -P "**/*_{test,spec}.rb"`
38
- Then the output should contain "3 examples, 0 failures"
@@ -1,220 +0,0 @@
1
- Feature: Profile examples
2
-
3
- The `--profile` command line option (available from `RSpec.configure` as
4
- `#profile_examples`), when set, will cause RSpec to dump out a list of
5
- your slowest examples. By default, it prints the 10 slowest examples,
6
- but you can set it to a different value to have it print more or fewer
7
- slow examples. If `--fail-fast` option is used together with `--profile`
8
- and there is a failure, slow examples are not shown.
9
-
10
- Background:
11
- Given a file named "spec/spec_helper.rb" with:
12
- """ruby
13
- """
14
- And a file named "spec/example_spec.rb" with:
15
- """ruby
16
- require "spec_helper"
17
-
18
- describe "something" do
19
- it "sleeps for 0.1 seconds (example 1)" do
20
- sleep 0.1
21
- expect(1).to eq(1)
22
- end
23
-
24
- it "sleeps for 0 seconds (example 2)" do
25
- expect(2).to eq(2)
26
- end
27
-
28
- it "sleeps for 0.15 seconds (example 3)" do
29
- sleep 0.15
30
- expect(3).to eq(3)
31
- end
32
-
33
- it "sleeps for 0.05 seconds (example 4)" do
34
- sleep 0.05
35
- expect(4).to eq(4)
36
- end
37
-
38
- it "sleeps for 0.05 seconds (example 5)" do
39
- sleep 0.05
40
- expect(5).to eq(5)
41
- end
42
-
43
- it "sleeps for 0.05 seconds (example 6)" do
44
- sleep 0.05
45
- expect(6).to eq(6)
46
- end
47
-
48
- it "sleeps for 0.05 seconds (example 7)" do
49
- sleep 0.05
50
- expect(7).to eq(7)
51
- end
52
-
53
- it "sleeps for 0.05 seconds (example 8)" do
54
- sleep 0.05
55
- expect(8).to eq(8)
56
- end
57
-
58
- it "sleeps for 0.05 seconds (example 9)" do
59
- sleep 0.05
60
- expect(9).to eq(9)
61
- end
62
-
63
- it "sleeps for 0.05 seconds (example 10)" do
64
- sleep 0.05
65
- expect(10).to eq(10)
66
- end
67
-
68
- it "sleeps for 0.05 seconds (example 11)" do
69
- sleep 0.05
70
- expect(11).to eq(11)
71
- end
72
- end
73
- """
74
-
75
- Scenario: by default does not show profile
76
- When I run `rspec spec`
77
- Then the examples should all pass
78
- And the output should not contain "example 1"
79
- And the output should not contain "example 2"
80
- And the output should not contain "example 3"
81
- And the output should not contain "example 4"
82
- And the output should not contain "example 5"
83
- And the output should not contain "example 6"
84
- And the output should not contain "example 7"
85
- And the output should not contain "example 8"
86
- And the output should not contain "example 9"
87
- And the output should not contain "example 10"
88
- And the output should not contain "example 11"
89
-
90
- Scenario: setting `profile_examples` to true shows 10 examples
91
- Given a file named "spec/spec_helper.rb" with:
92
- """ruby
93
- RSpec.configure { |c| c.profile_examples = true }
94
- """
95
- When I run `rspec spec`
96
- Then the examples should all pass
97
- And the output should contain "Top 10 slowest examples"
98
- And the output should contain "example 1"
99
- And the output should not contain "example 2"
100
- And the output should contain "example 3"
101
- And the output should contain "example 4"
102
- And the output should contain "example 5"
103
- And the output should contain "example 6"
104
- And the output should contain "example 7"
105
- And the output should contain "example 8"
106
- And the output should contain "example 9"
107
- And the output should contain "example 10"
108
- And the output should contain "example 11"
109
-
110
- Scenario: setting `profile_examples` to 2 shows 2 examples
111
- Given a file named "spec/spec_helper.rb" with:
112
- """ruby
113
- RSpec.configure { |c| c.profile_examples = 2 }
114
- """
115
- When I run `rspec spec`
116
- Then the examples should all pass
117
- And the output should contain "Top 2 slowest examples"
118
- And the output should contain "example 1"
119
- And the output should not contain "example 2"
120
- And the output should contain "example 3"
121
- And the output should not contain "example 4"
122
- And the output should not contain "example 5"
123
- And the output should not contain "example 6"
124
- And the output should not contain "example 7"
125
- And the output should not contain "example 8"
126
- And the output should not contain "example 9"
127
- And the output should not contain "example 10"
128
- And the output should not contain "example 11"
129
-
130
- Scenario: setting profile examples through CLI
131
- When I run `rspec spec --profile 2`
132
- Then the examples should all pass
133
- And the output should contain "Top 2 slowest examples"
134
- And the output should contain "example 1"
135
- And the output should not contain "example 2"
136
- And the output should contain "example 3"
137
- And the output should not contain "example 4"
138
- And the output should not contain "example 5"
139
- And the output should not contain "example 6"
140
- And the output should not contain "example 7"
141
- And the output should not contain "example 8"
142
- And the output should not contain "example 9"
143
- And the output should not contain "example 10"
144
- And the output should not contain "example 11"
145
-
146
- Scenario: Using `--no-profile` overrules config options
147
- Given a file named "spec/spec_helper.rb" with:
148
- """ruby
149
- RSpec.configure { |c| c.profile_examples = true }
150
- """
151
- When I run `rspec spec --no-profile`
152
- Then the examples should all pass
153
- And the output should not contain "example 1"
154
- And the output should not contain "example 2"
155
- And the output should not contain "example 3"
156
- And the output should not contain "example 4"
157
- And the output should not contain "example 5"
158
- And the output should not contain "example 6"
159
- And the output should not contain "example 7"
160
- And the output should not contain "example 8"
161
- And the output should not contain "example 9"
162
- And the output should not contain "example 10"
163
- And the output should not contain "example 11"
164
-
165
- Scenario: Using `--profile` with `--fail-fast` shows slow examples if everything passes
166
- When I run `rspec spec --fail-fast --profile`
167
- Then the examples should all pass
168
- And the output should contain "Top 10 slowest examples"
169
- And the output should contain "example 1"
170
- And the output should not contain "example 2"
171
- And the output should contain "example 3"
172
- And the output should contain "example 4"
173
- And the output should contain "example 5"
174
- And the output should contain "example 6"
175
- And the output should contain "example 7"
176
- And the output should contain "example 8"
177
- And the output should contain "example 9"
178
- And the output should contain "example 10"
179
- And the output should contain "example 11"
180
-
181
- Scenario: Using `--profile` shows slow examples even in case of failures
182
- Given a file named "spec/example_spec.rb" with:
183
- """ruby
184
- require "spec_helper"
185
-
186
- describe "something" do
187
- it "sleeps for 0.1 seconds (example 1)" do
188
- sleep 0.1
189
- expect(1).to eq(1)
190
- end
191
-
192
- it "fails" do
193
- fail
194
- end
195
- end
196
- """
197
- When I run `rspec spec --profile`
198
- Then the output should contain "2 examples, 1 failure"
199
- And the output should contain "Top 2 slowest examples"
200
- And the output should contain "example 1"
201
-
202
- Scenario: Using `--profile` with `--fail-fast` doesn't show slow examples in case of failures
203
- Given a file named "spec/example_spec.rb" with:
204
- """ruby
205
- require "spec_helper"
206
-
207
- describe "something" do
208
- it "sleeps for 0.1 seconds (example 1)" do
209
- sleep 0.1
210
- expect(1).to eq(1)
211
- end
212
-
213
- it "fails" do
214
- fail
215
- end
216
- end
217
- """
218
- When I run `rspec spec --fail-fast --profile`
219
- Then the output should not contain "Top 2 slowest examples"
220
- And the output should not contain "example 1"
@@ -1,90 +0,0 @@
1
- Feature: read command line configuration options from files
2
-
3
- RSpec reads command line configuration options from files in two different
4
- locations:
5
-
6
- Local: `./.rspec-local` (i.e. in the project's root directory, can be gitignored)
7
- Project: `./.rspec` (i.e. in the project's root directory, usually checked into the project)
8
- Global: `~/.rspec` (i.e. in the user's home directory)
9
-
10
- Configuration options are loaded from `~/.rspec`, `.rspec`,
11
- `.rspec-local`, command line switches, and the `SPEC_OPTS` environment
12
- variable (listed in lowest to highest precedence; for example, an option
13
- in `~/.rspec` can be overridden by an option in `.rspec-local`).
14
-
15
- Scenario: color set in .rspec
16
- Given a file named ".rspec" with:
17
- """
18
- --color
19
- """
20
- And a file named "spec/example_spec.rb" with:
21
- """ruby
22
- describe "color_enabled" do
23
- context "when set with RSpec.configure" do
24
- before do
25
- # color is disabled for non-tty output, so stub the output stream
26
- # to say it is tty, even though we're running this with cucumber
27
- allow(RSpec.configuration.output_stream).to receive(:tty?) { true }
28
- end
29
-
30
- it "is true" do
31
- expect(RSpec.configuration).to be_color_enabled
32
- end
33
- end
34
- end
35
- """
36
- When I run `rspec ./spec/example_spec.rb`
37
- Then the examples should all pass
38
-
39
- Scenario: custom options file
40
- Given a file named "my.options" with:
41
- """
42
- --format documentation
43
- """
44
- And a file named "spec/example_spec.rb" with:
45
- """ruby
46
- describe "formatter set in custom options file" do
47
- it "sets formatter" do
48
- expect(RSpec.configuration.formatters.first).
49
- to be_a(RSpec::Core::Formatters::DocumentationFormatter)
50
- end
51
- end
52
- """
53
- When I run `rspec spec/example_spec.rb --options my.options`
54
- Then the examples should all pass
55
-
56
- Scenario: RSpec ignores ./.rspec when custom options file is used
57
- Given a file named "my.options" with:
58
- """
59
- --format documentation
60
- """
61
- And a file named ".rspec" with:
62
- """
63
- --color
64
- """
65
- And a file named "spec/example_spec.rb" with:
66
- """ruby
67
- describe "custom options file" do
68
- it "causes .rspec to be ignored" do
69
- expect(RSpec.configuration.color_enabled).to be_falsey
70
- end
71
- end
72
- """
73
- When I run `rspec spec/example_spec.rb --options my.options`
74
- Then the examples should all pass
75
-
76
- Scenario: using ERB in .rspec
77
- Given a file named ".rspec" with:
78
- """
79
- --format <%= true ? 'documentation' : 'progress' %>
80
- """
81
- And a file named "spec/example_spec.rb" with:
82
- """ruby
83
- describe "formatter" do
84
- it "is set to documentation" do
85
- expect(RSpec.configuration.formatters.first).to be_an(RSpec::Core::Formatters::DocumentationFormatter)
86
- end
87
- end
88
- """
89
- When I run `rspec ./spec/example_spec.rb`
90
- Then the examples should all pass