rspec-core 3.0.0.beta2 → 3.0.0.rc1

Sign up to get free protection for your applications and to get access to all the features.
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