rspec 1.3.2 → 2.0.0.a2

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 (398) hide show
  1. data/.document +4 -6
  2. data/.gitignore +4 -14
  3. data/License.txt +1 -1
  4. data/README.markdown +46 -0
  5. data/Rakefile +26 -100
  6. data/lib/rspec.rb +4 -0
  7. data/lib/rspec/version.rb +14 -0
  8. data/rspec.gemspec +46 -19
  9. metadata +72 -673
  10. data/.autotest +0 -5
  11. data/Gemfile +0 -20
  12. data/History.rdoc +0 -1560
  13. data/README.rdoc +0 -44
  14. data/Ruby1.9.rdoc +0 -31
  15. data/TODO.txt +0 -17
  16. data/Upgrade.rdoc +0 -260
  17. data/bin/autospec +0 -4
  18. data/bin/spec +0 -5
  19. data/cucumber.yml +0 -5
  20. data/example_spec.rb +0 -4
  21. data/examples/failing/README.txt +0 -11
  22. data/examples/failing/diffing_spec.rb +0 -36
  23. data/examples/failing/failing_implicit_docstrings_example.rb +0 -17
  24. data/examples/failing/failure_in_after.rb +0 -10
  25. data/examples/failing/failure_in_before.rb +0 -10
  26. data/examples/failing/mocking_example.rb +0 -38
  27. data/examples/failing/mocking_with_flexmock.rb +0 -26
  28. data/examples/failing/mocking_with_mocha.rb +0 -25
  29. data/examples/failing/mocking_with_rr.rb +0 -27
  30. data/examples/failing/partial_mock_example.rb +0 -18
  31. data/examples/failing/pending_example.rb +0 -7
  32. data/examples/failing/predicate_example.rb +0 -32
  33. data/examples/failing/raising_example.rb +0 -47
  34. data/examples/failing/syntax_error_example.rb +0 -7
  35. data/examples/failing/team_spec.rb +0 -41
  36. data/examples/failing/timeout_behaviour.rb +0 -5
  37. data/examples/passing/custom_formatter.rb +0 -11
  38. data/examples/passing/custom_matchers.rb +0 -54
  39. data/examples/passing/dynamic_spec.rb +0 -7
  40. data/examples/passing/file_accessor.rb +0 -18
  41. data/examples/passing/file_accessor_spec.rb +0 -37
  42. data/examples/passing/filtered_formatter.rb +0 -17
  43. data/examples/passing/filtered_formatter_example.rb +0 -31
  44. data/examples/passing/greeter_spec.rb +0 -30
  45. data/examples/passing/helper_method_example.rb +0 -12
  46. data/examples/passing/implicit_docstrings_example.rb +0 -16
  47. data/examples/passing/io_processor.rb +0 -8
  48. data/examples/passing/io_processor_spec.rb +0 -20
  49. data/examples/passing/mocking_example.rb +0 -25
  50. data/examples/passing/multi_threaded_example_group_runner.rb +0 -26
  51. data/examples/passing/nested_classes_example.rb +0 -35
  52. data/examples/passing/options_example.rb +0 -29
  53. data/examples/passing/options_formatter.rb +0 -20
  54. data/examples/passing/partial_mock_example.rb +0 -27
  55. data/examples/passing/pending_example.rb +0 -18
  56. data/examples/passing/predicate_example.rb +0 -25
  57. data/examples/passing/shared_example_group_example.rb +0 -43
  58. data/examples/passing/shared_stack_examples.rb +0 -36
  59. data/examples/passing/simple_matcher_example.rb +0 -29
  60. data/examples/passing/stack.rb +0 -36
  61. data/examples/passing/stack_spec.rb +0 -63
  62. data/examples/passing/stack_spec_with_nested_example_groups.rb +0 -66
  63. data/examples/passing/stubbing_example.rb +0 -67
  64. data/examples/passing/yielding_example.rb +0 -31
  65. data/examples/ruby1.9.compatibility/access_to_constants_spec.rb +0 -85
  66. data/features-pending/cli/conditional_exclusion.feature +0 -39
  67. data/features-pending/heckle/heckle.feature +0 -56
  68. data/features/before_and_after_blocks/before_and_after_blocks.feature +0 -167
  69. data/features/command_line/line_number_option.feature +0 -56
  70. data/features/command_line/line_number_option_with_example_with_no_name.feature +0 -22
  71. data/features/example_groups/define_example_attribute.feature +0 -41
  72. data/features/example_groups/example_group_with_should_methods.feature +0 -29
  73. data/features/example_groups/implicit_docstrings.feature +0 -59
  74. data/features/example_groups/nested_groups.feature +0 -32
  75. data/features/expectations/customized_message.feature +0 -54
  76. data/features/expectations/expect_change.feature +0 -65
  77. data/features/expectations/expect_error.feature +0 -44
  78. data/features/extensions/custom_example_group.feature +0 -19
  79. data/features/formatters/custom_formatter.feature +0 -30
  80. data/features/formatters/nested_formatter.feature +0 -32
  81. data/features/interop/cucumber_stubs_dont_leak.feature +0 -11
  82. data/features/interop/examples_and_tests_together.feature +0 -84
  83. data/features/interop/rspec_output.feature +0 -25
  84. data/features/interop/test_but_not_test_unit.feature +0 -26
  85. data/features/interop/test_case_with_should_methods.feature +0 -46
  86. data/features/load_paths/add_lib_to_load_path.feature +0 -20
  87. data/features/load_paths/add_spec_to_load_path.feature +0 -20
  88. data/features/matchers/define_diffable_matcher.feature +0 -26
  89. data/features/matchers/define_matcher.feature +0 -179
  90. data/features/matchers/define_matcher_outside_rspec.feature +0 -37
  91. data/features/matchers/define_matcher_with_fluent_interface.feature +0 -48
  92. data/features/matchers/define_wrapped_matcher.feature +0 -56
  93. data/features/matchers/match_unless_raises.feature +0 -60
  94. data/features/matchers/match_unless_raises_unexpected_error.feature +0 -39
  95. data/features/mock_framework_integration/use_flexmock.feature +0 -27
  96. data/features/mock_framework_integration/use_mocha.feature +0 -27
  97. data/features/mock_framework_integration/use_rr.feature +0 -27
  98. data/features/mocks/block_local_expectations.feature +0 -62
  99. data/features/mocks/mix_stubs_and_mocks.feature +0 -22
  100. data/features/mocks/stub_implementation.feature +0 -26
  101. data/features/pending/pending_examples.feature +0 -81
  102. data/features/runner/specify_line_number.feature +0 -32
  103. data/features/spec_helper/spec_helper.feature +0 -25
  104. data/features/step_definitions/running_rspec_steps.rb +0 -52
  105. data/features/step_definitions/stubbing_steps.rb +0 -16
  106. data/features/subject/explicit_subject.feature +0 -31
  107. data/features/subject/implicit_subject.feature +0 -43
  108. data/features/support/env.rb +0 -83
  109. data/features/support/matchers/smart_match.rb +0 -31
  110. data/init.rb +0 -9
  111. data/lib/autotest/discover.rb +0 -3
  112. data/lib/autotest/rspec.rb +0 -54
  113. data/lib/spec.rb +0 -8
  114. data/lib/spec/adapters/mock_frameworks/flexmock.rb +0 -24
  115. data/lib/spec/adapters/mock_frameworks/mocha.rb +0 -25
  116. data/lib/spec/adapters/mock_frameworks/rr.rb +0 -22
  117. data/lib/spec/adapters/mock_frameworks/rspec.rb +0 -21
  118. data/lib/spec/autorun.rb +0 -3
  119. data/lib/spec/deprecation.rb +0 -41
  120. data/lib/spec/dsl.rb +0 -1
  121. data/lib/spec/dsl/main.rb +0 -93
  122. data/lib/spec/example.rb +0 -164
  123. data/lib/spec/example/args_and_options.rb +0 -27
  124. data/lib/spec/example/before_and_after_hooks.rb +0 -93
  125. data/lib/spec/example/errors.rb +0 -25
  126. data/lib/spec/example/example_group.rb +0 -10
  127. data/lib/spec/example/example_group_factory.rb +0 -82
  128. data/lib/spec/example/example_group_hierarchy.rb +0 -53
  129. data/lib/spec/example/example_group_methods.rb +0 -287
  130. data/lib/spec/example/example_group_proxy.rb +0 -61
  131. data/lib/spec/example/example_matcher.rb +0 -43
  132. data/lib/spec/example/example_methods.rb +0 -152
  133. data/lib/spec/example/example_proxy.rb +0 -41
  134. data/lib/spec/example/module_reopening_fix.rb +0 -43
  135. data/lib/spec/example/pending.rb +0 -18
  136. data/lib/spec/example/predicate_matchers.rb +0 -46
  137. data/lib/spec/example/shared_example_group.rb +0 -59
  138. data/lib/spec/example/subject.rb +0 -114
  139. data/lib/spec/expectations.rb +0 -35
  140. data/lib/spec/expectations/errors.rb +0 -12
  141. data/lib/spec/expectations/extensions.rb +0 -1
  142. data/lib/spec/expectations/extensions/kernel.rb +0 -52
  143. data/lib/spec/expectations/fail_with.rb +0 -45
  144. data/lib/spec/expectations/handler.rb +0 -50
  145. data/lib/spec/extensions/instance_exec.rb +0 -31
  146. data/lib/spec/interop/test.rb +0 -44
  147. data/lib/spec/interop/test/unit/autorunner.rb +0 -6
  148. data/lib/spec/interop/test/unit/testcase.rb +0 -56
  149. data/lib/spec/interop/test/unit/testresult.rb +0 -6
  150. data/lib/spec/interop/test/unit/testsuite_adapter.rb +0 -36
  151. data/lib/spec/interop/test/unit/ui/console/testrunner.rb +0 -61
  152. data/lib/spec/matchers.rb +0 -214
  153. data/lib/spec/matchers/be.rb +0 -249
  154. data/lib/spec/matchers/be_close.rb +0 -32
  155. data/lib/spec/matchers/be_instance_of.rb +0 -26
  156. data/lib/spec/matchers/be_kind_of.rb +0 -26
  157. data/lib/spec/matchers/change.rb +0 -151
  158. data/lib/spec/matchers/compatibility.rb +0 -14
  159. data/lib/spec/matchers/dsl.rb +0 -20
  160. data/lib/spec/matchers/eql.rb +0 -42
  161. data/lib/spec/matchers/equal.rb +0 -53
  162. data/lib/spec/matchers/errors.rb +0 -5
  163. data/lib/spec/matchers/exist.rb +0 -16
  164. data/lib/spec/matchers/generated_descriptions.rb +0 -36
  165. data/lib/spec/matchers/has.rb +0 -35
  166. data/lib/spec/matchers/have.rb +0 -152
  167. data/lib/spec/matchers/include.rb +0 -44
  168. data/lib/spec/matchers/match.rb +0 -21
  169. data/lib/spec/matchers/match_array.rb +0 -71
  170. data/lib/spec/matchers/matcher.rb +0 -132
  171. data/lib/spec/matchers/method_missing.rb +0 -9
  172. data/lib/spec/matchers/operator_matcher.rb +0 -83
  173. data/lib/spec/matchers/pretty.rb +0 -37
  174. data/lib/spec/matchers/raise_exception.rb +0 -131
  175. data/lib/spec/matchers/respond_to.rb +0 -71
  176. data/lib/spec/matchers/satisfy.rb +0 -47
  177. data/lib/spec/matchers/simple_matcher.rb +0 -134
  178. data/lib/spec/matchers/throw_symbol.rb +0 -100
  179. data/lib/spec/matchers/wrap_expectation.rb +0 -55
  180. data/lib/spec/mocks.rb +0 -200
  181. data/lib/spec/mocks/argument_expectation.rb +0 -51
  182. data/lib/spec/mocks/argument_matchers.rb +0 -237
  183. data/lib/spec/mocks/error_generator.rb +0 -92
  184. data/lib/spec/mocks/errors.rb +0 -10
  185. data/lib/spec/mocks/example_methods.rb +0 -69
  186. data/lib/spec/mocks/extensions.rb +0 -1
  187. data/lib/spec/mocks/extensions/object.rb +0 -3
  188. data/lib/spec/mocks/framework.rb +0 -15
  189. data/lib/spec/mocks/message_expectation.rb +0 -344
  190. data/lib/spec/mocks/methods.rb +0 -94
  191. data/lib/spec/mocks/mock.rb +0 -71
  192. data/lib/spec/mocks/order_group.rb +0 -29
  193. data/lib/spec/mocks/proxy.rb +0 -254
  194. data/lib/spec/mocks/space.rb +0 -28
  195. data/lib/spec/rake/spectask.rb +0 -230
  196. data/lib/spec/rake/verify_rcov.rb +0 -52
  197. data/lib/spec/ruby.rb +0 -9
  198. data/lib/spec/runner.rb +0 -66
  199. data/lib/spec/runner/backtrace_tweaker.rb +0 -78
  200. data/lib/spec/runner/class_and_arguments_parser.rb +0 -14
  201. data/lib/spec/runner/command_line.rb +0 -15
  202. data/lib/spec/runner/configuration.rb +0 -202
  203. data/lib/spec/runner/differs/default.rb +0 -93
  204. data/lib/spec/runner/differs/load-diff-lcs.rb +0 -12
  205. data/lib/spec/runner/drb_command_line.rb +0 -32
  206. data/lib/spec/runner/example_group_runner.rb +0 -58
  207. data/lib/spec/runner/extensions/kernel.rb +0 -9
  208. data/lib/spec/runner/formatter/base_formatter.rb +0 -139
  209. data/lib/spec/runner/formatter/base_text_formatter.rb +0 -142
  210. data/lib/spec/runner/formatter/failing_example_groups_formatter.rb +0 -25
  211. data/lib/spec/runner/formatter/failing_examples_formatter.rb +0 -20
  212. data/lib/spec/runner/formatter/html_formatter.rb +0 -338
  213. data/lib/spec/runner/formatter/nested_text_formatter.rb +0 -50
  214. data/lib/spec/runner/formatter/no_op_method_missing.rb +0 -21
  215. data/lib/spec/runner/formatter/profile_formatter.rb +0 -47
  216. data/lib/spec/runner/formatter/progress_bar_formatter.rb +0 -33
  217. data/lib/spec/runner/formatter/silent_formatter.rb +0 -10
  218. data/lib/spec/runner/formatter/snippet_extractor.rb +0 -52
  219. data/lib/spec/runner/formatter/specdoc_formatter.rb +0 -33
  220. data/lib/spec/runner/formatter/text_mate_formatter.rb +0 -16
  221. data/lib/spec/runner/heckle_runner.rb +0 -77
  222. data/lib/spec/runner/heckle_runner_unsupported.rb +0 -10
  223. data/lib/spec/runner/line_number_query.rb +0 -78
  224. data/lib/spec/runner/option_parser.rb +0 -225
  225. data/lib/spec/runner/options.rb +0 -406
  226. data/lib/spec/runner/reporter.rb +0 -171
  227. data/lib/spec/stubs/cucumber.rb +0 -5
  228. data/lib/spec/test/unit.rb +0 -10
  229. data/lib/spec/version.rb +0 -14
  230. data/resources/helpers/cmdline.rb +0 -8
  231. data/resources/rake/examples.rake +0 -7
  232. data/resources/rake/examples_with_rcov.rake +0 -9
  233. data/resources/rake/failing_examples_with_html.rake +0 -9
  234. data/resources/rake/verify_rcov.rake +0 -7
  235. data/spec/README.jruby +0 -15
  236. data/spec/autotest/autotest_helper.rb +0 -8
  237. data/spec/autotest/autotest_matchers.rb +0 -38
  238. data/spec/autotest/discover_spec.rb +0 -8
  239. data/spec/autotest/failed_results_re_spec.rb +0 -31
  240. data/spec/autotest/rspec_spec.rb +0 -126
  241. data/spec/ruby_forker.rb +0 -13
  242. data/spec/spec.opts +0 -6
  243. data/spec/spec/dsl/main_spec.rb +0 -103
  244. data/spec/spec/example/example_group_class_definition_spec.rb +0 -51
  245. data/spec/spec/example/example_group_factory_spec.rb +0 -180
  246. data/spec/spec/example/example_group_methods_spec.rb +0 -778
  247. data/spec/spec/example/example_group_proxy_spec.rb +0 -107
  248. data/spec/spec/example/example_group_spec.rb +0 -632
  249. data/spec/spec/example/example_matcher_spec.rb +0 -85
  250. data/spec/spec/example/example_methods_spec.rb +0 -162
  251. data/spec/spec/example/example_proxy_spec.rb +0 -57
  252. data/spec/spec/example/helper_method_spec.rb +0 -24
  253. data/spec/spec/example/nested_example_group_spec.rb +0 -71
  254. data/spec/spec/example/pending_module_spec.rb +0 -58
  255. data/spec/spec/example/predicate_matcher_spec.rb +0 -41
  256. data/spec/spec/example/shared_example_group_spec.rb +0 -257
  257. data/spec/spec/example/subclassing_example_group_spec.rb +0 -25
  258. data/spec/spec/example/subject_spec.rb +0 -110
  259. data/spec/spec/expectations/differs/default_spec.rb +0 -194
  260. data/spec/spec/expectations/extensions/kernel_spec.rb +0 -45
  261. data/spec/spec/expectations/fail_with_spec.rb +0 -96
  262. data/spec/spec/expectations/handler_spec.rb +0 -206
  263. data/spec/spec/expectations/wrap_expectation_spec.rb +0 -31
  264. data/spec/spec/interop/test/unit/resources/spec_that_fails.rb +0 -10
  265. data/spec/spec/interop/test/unit/resources/spec_that_passes.rb +0 -10
  266. data/spec/spec/interop/test/unit/resources/spec_with_errors.rb +0 -10
  267. data/spec/spec/interop/test/unit/resources/spec_with_options_hash.rb +0 -13
  268. data/spec/spec/interop/test/unit/resources/test_case_that_fails.rb +0 -10
  269. data/spec/spec/interop/test/unit/resources/test_case_that_passes.rb +0 -10
  270. data/spec/spec/interop/test/unit/resources/test_case_with_errors.rb +0 -10
  271. data/spec/spec/interop/test/unit/resources/test_case_with_various_names.rb +0 -22
  272. data/spec/spec/interop/test/unit/resources/testsuite_adapter_spec_with_test_unit.rb +0 -38
  273. data/spec/spec/interop/test/unit/spec_spec.rb +0 -48
  274. data/spec/spec/interop/test/unit/test_unit_spec_helper.rb +0 -18
  275. data/spec/spec/interop/test/unit/testcase_spec.rb +0 -50
  276. data/spec/spec/interop/test/unit/testsuite_adapter_spec.rb +0 -9
  277. data/spec/spec/matchers/be_close_spec.rb +0 -50
  278. data/spec/spec/matchers/be_instance_of_spec.rb +0 -36
  279. data/spec/spec/matchers/be_kind_of_spec.rb +0 -33
  280. data/spec/spec/matchers/be_spec.rb +0 -460
  281. data/spec/spec/matchers/change_spec.rb +0 -349
  282. data/spec/spec/matchers/compatibility_spec.rb +0 -28
  283. data/spec/spec/matchers/description_generation_spec.rb +0 -160
  284. data/spec/spec/matchers/dsl_spec.rb +0 -34
  285. data/spec/spec/matchers/eql_spec.rb +0 -33
  286. data/spec/spec/matchers/equal_spec.rb +0 -57
  287. data/spec/spec/matchers/exist_spec.rb +0 -65
  288. data/spec/spec/matchers/has_spec.rb +0 -190
  289. data/spec/spec/matchers/have_spec.rb +0 -381
  290. data/spec/spec/matchers/include_spec.rb +0 -88
  291. data/spec/spec/matchers/match_array_spec.rb +0 -115
  292. data/spec/spec/matchers/match_spec.rb +0 -57
  293. data/spec/spec/matchers/matcher_spec.rb +0 -289
  294. data/spec/spec/matchers/matchers_spec.rb +0 -2
  295. data/spec/spec/matchers/operator_matcher_spec.rb +0 -191
  296. data/spec/spec/matchers/pretty_spec.rb +0 -22
  297. data/spec/spec/matchers/raise_exception_spec.rb +0 -345
  298. data/spec/spec/matchers/respond_to_spec.rb +0 -116
  299. data/spec/spec/matchers/satisfy_spec.rb +0 -36
  300. data/spec/spec/matchers/simple_matcher_spec.rb +0 -100
  301. data/spec/spec/matchers/throw_symbol_spec.rb +0 -121
  302. data/spec/spec/mocks/and_yield_spec.rb +0 -117
  303. data/spec/spec/mocks/any_number_of_times_spec.rb +0 -36
  304. data/spec/spec/mocks/argument_expectation_spec.rb +0 -23
  305. data/spec/spec/mocks/argument_matchers_spec.rb +0 -19
  306. data/spec/spec/mocks/at_least_spec.rb +0 -97
  307. data/spec/spec/mocks/at_most_spec.rb +0 -93
  308. data/spec/spec/mocks/bug_report_10260_spec.rb +0 -8
  309. data/spec/spec/mocks/bug_report_10263_spec.rb +0 -27
  310. data/spec/spec/mocks/bug_report_1049_spec.rb +0 -30
  311. data/spec/spec/mocks/bug_report_11545_spec.rb +0 -32
  312. data/spec/spec/mocks/bug_report_15719_spec.rb +0 -30
  313. data/spec/spec/mocks/bug_report_496_spec.rb +0 -17
  314. data/spec/spec/mocks/bug_report_600_spec.rb +0 -22
  315. data/spec/spec/mocks/bug_report_7611_spec.rb +0 -19
  316. data/spec/spec/mocks/bug_report_7805_spec.rb +0 -22
  317. data/spec/spec/mocks/bug_report_8165_spec.rb +0 -31
  318. data/spec/spec/mocks/bug_report_8302_spec.rb +0 -26
  319. data/spec/spec/mocks/bug_report_830_spec.rb +0 -21
  320. data/spec/spec/mocks/bug_report_957_spec.rb +0 -22
  321. data/spec/spec/mocks/double_spec.rb +0 -12
  322. data/spec/spec/mocks/failing_argument_matchers_spec.rb +0 -95
  323. data/spec/spec/mocks/hash_including_matcher_spec.rb +0 -90
  324. data/spec/spec/mocks/hash_not_including_matcher_spec.rb +0 -67
  325. data/spec/spec/mocks/mock_ordering_spec.rb +0 -94
  326. data/spec/spec/mocks/mock_space_spec.rb +0 -54
  327. data/spec/spec/mocks/mock_spec.rb +0 -601
  328. data/spec/spec/mocks/multiple_return_value_spec.rb +0 -113
  329. data/spec/spec/mocks/nil_expectation_warning_spec.rb +0 -53
  330. data/spec/spec/mocks/null_object_mock_spec.rb +0 -54
  331. data/spec/spec/mocks/once_counts_spec.rb +0 -53
  332. data/spec/spec/mocks/options_hash_spec.rb +0 -35
  333. data/spec/spec/mocks/partial_mock_spec.rb +0 -164
  334. data/spec/spec/mocks/partial_mock_using_mocks_directly_spec.rb +0 -66
  335. data/spec/spec/mocks/passing_argument_matchers_spec.rb +0 -145
  336. data/spec/spec/mocks/precise_counts_spec.rb +0 -52
  337. data/spec/spec/mocks/record_messages_spec.rb +0 -26
  338. data/spec/spec/mocks/stub_chain_spec.rb +0 -42
  339. data/spec/spec/mocks/stub_implementation_spec.rb +0 -31
  340. data/spec/spec/mocks/stub_spec.rb +0 -203
  341. data/spec/spec/mocks/stubbed_message_expectations_spec.rb +0 -26
  342. data/spec/spec/mocks/twice_counts_spec.rb +0 -67
  343. data/spec/spec/mocks/unstub_spec.rb +0 -127
  344. data/spec/spec/package/bin_spec_spec.rb +0 -16
  345. data/spec/spec/rake/spectask_spec.rb +0 -150
  346. data/spec/spec/runner/class_and_argument_parser_spec.rb +0 -23
  347. data/spec/spec/runner/command_line_spec.rb +0 -162
  348. data/spec/spec/runner/configuration_spec.rb +0 -320
  349. data/spec/spec/runner/drb_command_line_spec.rb +0 -146
  350. data/spec/spec/runner/empty_file.txt +0 -0
  351. data/spec/spec/runner/example_group_runner_spec.rb +0 -26
  352. data/spec/spec/runner/examples.txt +0 -2
  353. data/spec/spec/runner/failed.txt +0 -3
  354. data/spec/spec/runner/formatter/base_formatter_spec.rb +0 -30
  355. data/spec/spec/runner/formatter/base_text_formatter_spec.rb +0 -113
  356. data/spec/spec/runner/formatter/failing_example_groups_formatter_spec.rb +0 -45
  357. data/spec/spec/runner/formatter/failing_examples_formatter_spec.rb +0 -33
  358. data/spec/spec/runner/formatter/html_formatted-1.8.6-jruby.html +0 -377
  359. data/spec/spec/runner/formatter/html_formatted-1.8.6.html +0 -377
  360. data/spec/spec/runner/formatter/html_formatted-1.8.7.html +0 -377
  361. data/spec/spec/runner/formatter/html_formatted-1.9.1.html +0 -377
  362. data/spec/spec/runner/formatter/html_formatted-1.9.2.html +0 -377
  363. data/spec/spec/runner/formatter/html_formatter_spec.rb +0 -118
  364. data/spec/spec/runner/formatter/nested_text_formatter_spec.rb +0 -329
  365. data/spec/spec/runner/formatter/profile_formatter_spec.rb +0 -70
  366. data/spec/spec/runner/formatter/progress_bar_formatter_spec.rb +0 -149
  367. data/spec/spec/runner/formatter/snippet_extractor_spec.rb +0 -18
  368. data/spec/spec/runner/formatter/specdoc_formatter_spec.rb +0 -159
  369. data/spec/spec/runner/formatter/text_mate_formatted-1.8.6-jruby.html +0 -371
  370. data/spec/spec/runner/formatter/text_mate_formatted-1.8.6.html +0 -371
  371. data/spec/spec/runner/formatter/text_mate_formatted-1.8.7.html +0 -371
  372. data/spec/spec/runner/formatter/text_mate_formatted-1.9.1.html +0 -371
  373. data/spec/spec/runner/formatter/text_mate_formatted-1.9.2.html +0 -371
  374. data/spec/spec/runner/formatter/text_mate_formatter_spec.rb +0 -106
  375. data/spec/spec/runner/heckle_runner_spec.rb +0 -78
  376. data/spec/spec/runner/heckler_spec.rb +0 -20
  377. data/spec/spec/runner/line_number_query/line_number_query_fixture.rb +0 -70
  378. data/spec/spec/runner/line_number_query_spec.rb +0 -129
  379. data/spec/spec/runner/noisy_backtrace_tweaker_spec.rb +0 -51
  380. data/spec/spec/runner/option_parser_spec.rb +0 -551
  381. data/spec/spec/runner/options_spec.rb +0 -554
  382. data/spec/spec/runner/output_one_time_fixture.rb +0 -7
  383. data/spec/spec/runner/output_one_time_fixture_runner.rb +0 -7
  384. data/spec/spec/runner/output_one_time_spec.rb +0 -15
  385. data/spec/spec/runner/quiet_backtrace_tweaker_spec.rb +0 -123
  386. data/spec/spec/runner/reporter_spec.rb +0 -244
  387. data/spec/spec/runner/resources/a_bar.rb +0 -0
  388. data/spec/spec/runner/resources/a_foo.rb +0 -0
  389. data/spec/spec/runner/resources/a_spec.rb +0 -1
  390. data/spec/spec/runner/resources/custom_example_group_runner.rb +0 -14
  391. data/spec/spec/runner/resources/utf8_encoded.rb +0 -8
  392. data/spec/spec/runner/spec.opts +0 -2
  393. data/spec/spec/runner/spec_drb.opts +0 -2
  394. data/spec/spec/runner/spec_spaced.opts +0 -2
  395. data/spec/spec/runner_spec.rb +0 -13
  396. data/spec/spec_helper.rb +0 -113
  397. data/spec/support/macros.rb +0 -29
  398. data/spec/support/spec_classes.rb +0 -133
@@ -1,406 +0,0 @@
1
- require 'ostruct'
2
- require 'rbconfig'
3
-
4
- module Spec
5
- module Runner
6
- class Options
7
- FILE_SORTERS = {
8
- 'mtime' => lambda {|file_a, file_b| File.mtime(file_b) <=> File.mtime(file_a)}
9
- }
10
-
11
- EXAMPLE_FORMATTERS = { # Load these lazily for better speed
12
- 'silent' => ['spec/runner/formatter/silent_formatter', 'Formatter::SilentFormatter'],
13
- 'l' => ['spec/runner/formatter/silent_formatter', 'Formatter::SilentFormatter'],
14
- 'specdoc' => ['spec/runner/formatter/specdoc_formatter', 'Formatter::SpecdocFormatter'],
15
- 's' => ['spec/runner/formatter/specdoc_formatter', 'Formatter::SpecdocFormatter'],
16
- 'nested' => ['spec/runner/formatter/nested_text_formatter', 'Formatter::NestedTextFormatter'],
17
- 'n' => ['spec/runner/formatter/nested_text_formatter', 'Formatter::NestedTextFormatter'],
18
- 'html' => ['spec/runner/formatter/html_formatter', 'Formatter::HtmlFormatter'],
19
- 'h' => ['spec/runner/formatter/html_formatter', 'Formatter::HtmlFormatter'],
20
- 'progress' => ['spec/runner/formatter/progress_bar_formatter', 'Formatter::ProgressBarFormatter'],
21
- 'p' => ['spec/runner/formatter/progress_bar_formatter', 'Formatter::ProgressBarFormatter'],
22
- 'failing_examples' => ['spec/runner/formatter/failing_examples_formatter', 'Formatter::FailingExamplesFormatter'],
23
- 'e' => ['spec/runner/formatter/failing_examples_formatter', 'Formatter::FailingExamplesFormatter'],
24
- 'failing_example_groups' => ['spec/runner/formatter/failing_example_groups_formatter', 'Formatter::FailingExampleGroupsFormatter'],
25
- 'g' => ['spec/runner/formatter/failing_example_groups_formatter', 'Formatter::FailingExampleGroupsFormatter'],
26
- 'profile' => ['spec/runner/formatter/profile_formatter', 'Formatter::ProfileFormatter'],
27
- 'o' => ['spec/runner/formatter/profile_formatter', 'Formatter::ProfileFormatter'],
28
- 'textmate' => ['spec/runner/formatter/text_mate_formatter', 'Formatter::TextMateFormatter']
29
- }
30
-
31
- attr_accessor(
32
- :autospec, # hack to tell
33
- :filename_pattern,
34
- :backtrace_tweaker,
35
- :context_lines,
36
- :diff_format,
37
- :dry_run,
38
- :profile,
39
- :heckle_runner,
40
- :debug,
41
- :line_number,
42
- :loadby,
43
- :reporter,
44
- :reverse,
45
- :timeout,
46
- :verbose,
47
- :user_input_for_runner,
48
- :error_stream,
49
- :output_stream,
50
- # TODO: BT - Figure out a better name
51
- :argv
52
- )
53
- attr_reader :colour, :differ_class, :files, :examples, :example_groups
54
- attr_writer :drb_port
55
-
56
- def initialize(error_stream, output_stream)
57
- @error_stream = error_stream
58
- @output_stream = output_stream
59
- @filename_pattern = "**/*_spec.rb"
60
- @backtrace_tweaker = QuietBacktraceTweaker.new
61
- @examples = []
62
- @colour = false
63
- @profile = false
64
- @dry_run = false
65
- @debug = false
66
- @reporter = Reporter.new(self)
67
- @context_lines = 3
68
- @diff_format = :unified
69
- @files = []
70
- @example_groups = []
71
- @result = nil
72
- @examples_run = false
73
- @examples_should_be_run = nil
74
- @user_input_for_runner = nil
75
- @after_suite_parts = []
76
- @files_loaded = false
77
- @out_used = nil
78
- end
79
-
80
- def add_example_group(example_group)
81
- @example_groups << example_group
82
- end
83
-
84
- def line_number_requested?
85
- !!line_number
86
- end
87
-
88
- def example_line
89
- Spec::Runner::LineNumberQuery.new(self).example_line_for(files.first, line_number)
90
- end
91
-
92
- def remove_example_group(example_group)
93
- @example_groups.delete(example_group)
94
- end
95
-
96
- def require_ruby_debug
97
- require 'rubygems' unless ENV['NO_RUBYGEMS']
98
- require 'ruby-debug'
99
- end
100
-
101
- def project_root # :nodoc:
102
- require 'pathname'
103
- @project_root ||= determine_project_root
104
- end
105
-
106
- def determine_project_root # :nodoc:
107
- # This is borrowed (slightly modified) from Scott Taylors
108
- # project_path project:
109
- # http://github.com/smtlaissezfaire/project_path
110
- Pathname(File.expand_path('.')).ascend do |path|
111
- if File.exists?(File.join(path, "spec"))
112
- return path
113
- end
114
- end
115
- end
116
-
117
- def add_dir_from_project_root_to_load_path(dir, load_path=$LOAD_PATH) # :nodoc:
118
- return if project_root.nil?
119
- full_dir = File.join(project_root, dir)
120
- load_path.unshift full_dir unless load_path.include?(full_dir)
121
- end
122
-
123
- def run_examples
124
- require_ruby_debug if debug
125
- return true unless examples_should_be_run?
126
- success = true
127
- begin
128
- runner = custom_runner || ExampleGroupRunner.new(self)
129
-
130
- unless @files_loaded
131
- ['spec','lib'].each do |dir|
132
- add_dir_from_project_root_to_load_path(dir)
133
- end
134
- runner.load_files(files_to_load)
135
- @files_loaded = true
136
- end
137
-
138
- define_predicate_matchers
139
- plugin_mock_framework
140
- ignore_backtrace_patterns
141
-
142
- # TODO - this has to happen after the files get loaded,
143
- # otherwise the before_suite_parts are not populated
144
- # from the configuration. There is no spec for this
145
- # directly, but features/before_and_after_blocks/before_and_after_blocks.story
146
- # will fail if this happens before the files are loaded.
147
- before_suite_parts.each { |part| part.call }
148
-
149
- if example_groups.empty?
150
- true
151
- else
152
- set_spec_from_line_number if line_number
153
- success = runner.run
154
- @examples_run = true
155
- heckle if heckle_runner
156
- success
157
- end
158
- ensure
159
- after_suite_parts.each do |part|
160
- part.arity < 1 ? part.call : part.call(success)
161
- end
162
- end
163
- end
164
-
165
- def before_suite_parts
166
- Spec::Example::BeforeAndAfterHooks.before_suite_parts
167
- end
168
-
169
- def after_suite_parts
170
- Spec::Example::BeforeAndAfterHooks.after_suite_parts
171
- end
172
-
173
- def examples_run?
174
- @examples_run
175
- end
176
-
177
- def examples_should_not_be_run
178
- @examples_should_be_run = false
179
- end
180
-
181
- def mock_framework
182
- # TODO - don't like this dependency - perhaps store this in here instead?
183
- Spec::Runner.configuration.mock_framework
184
- end
185
-
186
- def colour=(colour)
187
- @colour = colour
188
- if @colour && Config::CONFIG['host_os'] =~ /mswin|mingw/ ;\
189
- begin ;\
190
- replace_output = @output_stream.equal?($stdout) ;\
191
- require 'rubygems' unless ENV['NO_RUBYGEMS'] ;\
192
- require 'Win32/Console/ANSI' ;\
193
- @output_stream = $stdout if replace_output ;\
194
- rescue LoadError ;\
195
- warn "You must 'gem install win32console' to use colour on Windows" ;\
196
- @colour = false ;\
197
- end
198
- end
199
- end
200
-
201
- def parse_diff(format)
202
- case format
203
- when :context, 'context', 'c'
204
- @diff_format = :context
205
- default_differ
206
- when :unified, 'unified', 'u', '', nil
207
- @diff_format = :unified
208
- default_differ
209
- else
210
- @diff_format = :custom
211
- self.differ_class = load_class(format, 'differ', '--diff')
212
- end
213
- end
214
-
215
- def parse_example(example)
216
- if(File.file?(example))
217
- @examples = [File.open(example).read.split("\n")].flatten
218
- else
219
- @examples = [example]
220
- end
221
- end
222
-
223
- def parse_format(format_arg)
224
- format, where = ClassAndArgumentsParser.parse(format_arg)
225
- unless where
226
- raise "When using several --format options only one of them can be without a file" if @out_used
227
- where = @output_stream
228
- @out_used = true
229
- end
230
- @format_options ||= []
231
- @format_options << [format, where]
232
- end
233
-
234
- def formatters
235
- @format_options ||= [['progress', @output_stream]]
236
- @formatters ||= load_formatters(@format_options, EXAMPLE_FORMATTERS)
237
- end
238
-
239
- def load_formatters(format_options, formatters)
240
- format_options.map do |format, where|
241
- formatter_type = if formatters[format]
242
- require formatters[format][0]
243
- eval(formatters[format][1], binding, __FILE__, __LINE__)
244
- else
245
- load_class(format, 'formatter', '--format')
246
- end
247
- formatter_type.new(formatter_options, where)
248
- end
249
- end
250
-
251
- def formatter_options
252
- @formatter_options ||= OpenStruct.new(
253
- :colour => colour,
254
- :autospec => autospec,
255
- :dry_run => dry_run
256
- )
257
- end
258
-
259
- def which_heckle_runner
260
- ([/mswin/, /java/].detect{|p| p =~ RUBY_PLATFORM} || Spec::Ruby.version.to_f == 1.9) ? "spec/runner/heckle_runner_unsupported" : "spec/runner/heckle_runner"
261
- end
262
-
263
- def load_heckle_runner(heckle)
264
- @format_options ||= [['silent', @output_stream]]
265
- require which_heckle_runner
266
- @heckle_runner = ::Spec::Runner::HeckleRunner.new(heckle)
267
- end
268
-
269
- def number_of_examples
270
- return examples.size unless examples.empty?
271
- @example_groups.inject(0) {|sum, group| sum + group.number_of_examples}
272
- end
273
-
274
- def files_to_load
275
- result = []
276
- sorted_files.each do |file|
277
- if File.directory?(file)
278
- filename_pattern.split(",").each do |pattern|
279
- result += Dir[File.expand_path("#{file}/#{pattern.strip}")]
280
- end
281
- elsif File.file?(file)
282
- result << file
283
- else
284
- raise "File or directory not found: #{file}"
285
- end
286
- end
287
- result
288
- end
289
-
290
- def dry_run?
291
- @dry_run == true
292
- end
293
-
294
- def drb_port
295
- @drb_port.to_i if defined?(@drb_port)
296
- end
297
-
298
- protected
299
-
300
- def define_predicate_matchers
301
- Spec::Runner.configuration.predicate_matchers.each_pair do |matcher_method, method_on_object|
302
- Spec::Example::ExampleMethods::__send__ :define_method, matcher_method do |*args|
303
- eval("be_#{method_on_object.to_s.gsub('?','')}(*args)")
304
- end
305
- end
306
- end
307
-
308
- def plugin_mock_framework
309
- case mock_framework
310
- when Module
311
- Spec::Example::ExampleMethods.__send__ :include, mock_framework
312
- else
313
- require mock_framework
314
- Spec::Example::ExampleMethods.__send__ :include, Spec::Adapters::MockFramework
315
- end
316
- end
317
-
318
- def ignore_backtrace_patterns
319
- @backtrace_tweaker.ignore_patterns Spec::Runner.configuration.ignored_backtrace_patterns
320
- end
321
-
322
- def examples_should_be_run?
323
- return @examples_should_be_run unless @examples_should_be_run.nil?
324
- @examples_should_be_run = true
325
- end
326
-
327
- def differ_class=(klass)
328
- return unless klass
329
- @differ_class = klass
330
- Spec::Expectations.differ = self.differ_class.new(self)
331
- end
332
-
333
- def load_class(name, kind, option)
334
- if name =~ /\A(?:::)?([A-Z]\w*(?:::[A-Z]\w*)*)\z/
335
- arg = $2 == "" ? nil : $2
336
- [$1, arg]
337
- else
338
- m = "#{name.inspect} is not a valid class name"
339
- @error_stream.puts m
340
- raise m
341
- end
342
- begin
343
- eval(name, binding, __FILE__, __LINE__)
344
- rescue NameError => e
345
- @error_stream.puts "Couldn't find #{kind} class #{name}"
346
- @error_stream.puts "Make sure the --require option is specified *before* #{option}"
347
- if $_spec_spec ; raise e ; else exit(1) ; end
348
- end
349
- end
350
-
351
- def custom_runner
352
- return nil unless custom_runner?
353
- klass_name, arg = ClassAndArgumentsParser.parse(user_input_for_runner)
354
- runner_type = load_class(klass_name, 'example group runner', '--runner')
355
- return runner_type.new(self, arg)
356
- end
357
-
358
- def custom_runner?
359
- return user_input_for_runner ? true : false
360
- end
361
-
362
- def heckle
363
- heckle_runner = self.heckle_runner
364
- self.heckle_runner = nil
365
- heckle_runner.heckle_with
366
- end
367
-
368
- def sorted_files
369
- return sorter ? files.sort(&sorter) : files
370
- end
371
-
372
- def sorter
373
- FILE_SORTERS[loadby]
374
- end
375
-
376
- def default_differ
377
- require 'spec/runner/differs/default'
378
- self.differ_class = ::Spec::Expectations::Differs::Default
379
- end
380
-
381
- def set_spec_from_line_number
382
- if examples.empty?
383
- if files.length == 1
384
- if File.directory?(files[0])
385
- error_stream.puts "You must specify one file, not a directory when providing a line number"
386
- exit(1) if stderr?
387
- else
388
- example = LineNumberQuery.new(self).spec_name_for(files[0], line_number)
389
- @examples = [example]
390
- end
391
- else
392
- error_stream.puts "Only one file can be specified when providing a line number: #{files.inspect}"
393
- exit(3) if stderr?
394
- end
395
- else
396
- error_stream.puts "You cannot use --example and specify a line number"
397
- exit(4) if stderr?
398
- end
399
- end
400
-
401
- def stderr?
402
- @error_stream == $stderr
403
- end
404
- end
405
- end
406
- end
@@ -1,171 +0,0 @@
1
- module Spec
2
- module Runner
3
- class Reporter
4
- attr_reader :options
5
-
6
- def initialize(options)
7
- @options = options
8
- @options.reporter = self
9
- @failures = []
10
- @pending_count = 0
11
- @example_count = 0
12
- @start_time = nil
13
- @end_time = nil
14
- end
15
-
16
- def example_group_started(example_group)
17
- @example_group = example_group
18
- formatters.each do |f|
19
- f.example_group_started(example_group)
20
- end
21
- end
22
-
23
- def example_started(example)
24
- formatters.each{|f| f.example_started(example)}
25
- end
26
-
27
- def example_finished(example, error=nil)
28
- @example_count += 1
29
-
30
- if error.nil?
31
- example_passed(example)
32
- elsif Spec::Example::ExamplePendingError === error
33
- example_pending(example, example.location, error.message)
34
- else
35
- example_failed(example, error)
36
- end
37
- end
38
-
39
- def example_failed(example, error)
40
- backtrace_tweaker.tweak_backtrace(error)
41
- failure = Failure.new(@example_group.description, example.description, error)
42
- @failures << failure
43
- formatters.each do |f|
44
- f.example_failed(example, @failures.length, failure)
45
- end
46
- end
47
-
48
- def start(number_of_examples)
49
- @start_time = Time.new
50
- formatters.each{|f| f.start(number_of_examples)}
51
- end
52
-
53
- def end
54
- @end_time = Time.new
55
- end
56
-
57
- # Dumps the summary and returns the total number of failures
58
- def dump
59
- formatters.each{|f| f.start_dump}
60
- dump_pending
61
- dump_failures
62
- formatters.each do |f|
63
- f.dump_summary(duration, @example_count, @failures.length, @pending_count)
64
- f.close
65
- end
66
- @failures.length
67
- end
68
-
69
- class Failure
70
- def initialize(group_description, example_description, exception) # :nodoc:
71
- @example_name = "#{group_description} #{example_description}"
72
- @exception = exception
73
- end
74
-
75
- # The Exception object raised
76
- attr_reader :exception
77
-
78
- # Header messsage for reporting this failure, including the name of the
79
- # example and an indicator of the type of failure. FAILED indicates a
80
- # failed expectation. FIXED indicates a pending example that passes, and
81
- # no longer needs to be pending. RuntimeError indicates that a
82
- # RuntimeError occured.
83
- #
84
- # == Examples
85
- #
86
- # 'A new account should have a zero balance' FAILED
87
- # 'A new account should have a zero balance' FIXED
88
- # RuntimeError in 'A new account should have a zero balance'
89
- def header
90
- if expectation_not_met?
91
- "'#{@example_name}' FAILED"
92
- elsif pending_fixed?
93
- "'#{@example_name}' FIXED"
94
- else
95
- "#{@exception.class.name} in '#{@example_name}'"
96
- end
97
- end
98
-
99
- def pending_fixed? # :nodoc:
100
- @exception.is_a?(Spec::Example::PendingExampleFixedError)
101
- end
102
-
103
- def expectation_not_met? # :nodoc:
104
- @exception.is_a?(Spec::Expectations::ExpectationNotMetError)
105
- end
106
- end
107
-
108
- private
109
-
110
- def formatters
111
- @options.formatters
112
- end
113
-
114
- def backtrace_tweaker
115
- @options.backtrace_tweaker
116
- end
117
-
118
- def dump_failures
119
- return if @failures.empty?
120
- @failures.inject(1) do |index, failure|
121
- formatters.each{|f| f.dump_failure(index, failure)}
122
- index + 1
123
- end
124
- end
125
-
126
- def dump_pending
127
- formatters.each{|f| f.dump_pending}
128
- end
129
-
130
- def duration
131
- return @end_time - @start_time unless (@end_time.nil? or @start_time.nil?)
132
- return "0.0"
133
- end
134
-
135
- def example_passed(example)
136
- formatters.each{|f| f.example_passed(example)}
137
- end
138
-
139
- EXAMPLE_PENDING_DEPRECATION_WARNING = <<-WARNING
140
-
141
- *********************************************************************
142
- DEPRECATION WARNING: RSpec's formatters have changed example_pending
143
- to accept two arguments instead of three. Please see the rdoc
144
- for Spec::Runner::Formatter::BaseFormatter#example_pending
145
- for more information.
146
-
147
- Please update any custom formatters to accept only two arguments
148
- to example_pending. Support for example_pending with two arguments
149
- and this warning message will be removed after the RSpec 2.0 release.
150
- *********************************************************************
151
- WARNING
152
-
153
- def example_pending(example, ignore, message="Not Yet Implemented")
154
- @pending_count += 1
155
- formatters.each do |formatter|
156
- if formatter_uses_deprecated_example_pending_method?(formatter)
157
- Spec.warn EXAMPLE_PENDING_DEPRECATION_WARNING
158
- formatter.example_pending(example, message, example.location)
159
- else
160
- formatter.example_pending(example, message)
161
- end
162
- end
163
- end
164
-
165
- def formatter_uses_deprecated_example_pending_method?(formatter)
166
- formatter.method(:example_pending).arity == 3
167
- end
168
-
169
- end
170
- end
171
- end