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.
- data/.document +4 -6
- data/.gitignore +4 -14
- data/License.txt +1 -1
- data/README.markdown +46 -0
- data/Rakefile +26 -100
- data/lib/rspec.rb +4 -0
- data/lib/rspec/version.rb +14 -0
- data/rspec.gemspec +46 -19
- metadata +72 -673
- data/.autotest +0 -5
- data/Gemfile +0 -20
- data/History.rdoc +0 -1560
- data/README.rdoc +0 -44
- data/Ruby1.9.rdoc +0 -31
- data/TODO.txt +0 -17
- data/Upgrade.rdoc +0 -260
- data/bin/autospec +0 -4
- data/bin/spec +0 -5
- data/cucumber.yml +0 -5
- data/example_spec.rb +0 -4
- data/examples/failing/README.txt +0 -11
- data/examples/failing/diffing_spec.rb +0 -36
- data/examples/failing/failing_implicit_docstrings_example.rb +0 -17
- data/examples/failing/failure_in_after.rb +0 -10
- data/examples/failing/failure_in_before.rb +0 -10
- data/examples/failing/mocking_example.rb +0 -38
- data/examples/failing/mocking_with_flexmock.rb +0 -26
- data/examples/failing/mocking_with_mocha.rb +0 -25
- data/examples/failing/mocking_with_rr.rb +0 -27
- data/examples/failing/partial_mock_example.rb +0 -18
- data/examples/failing/pending_example.rb +0 -7
- data/examples/failing/predicate_example.rb +0 -32
- data/examples/failing/raising_example.rb +0 -47
- data/examples/failing/syntax_error_example.rb +0 -7
- data/examples/failing/team_spec.rb +0 -41
- data/examples/failing/timeout_behaviour.rb +0 -5
- data/examples/passing/custom_formatter.rb +0 -11
- data/examples/passing/custom_matchers.rb +0 -54
- data/examples/passing/dynamic_spec.rb +0 -7
- data/examples/passing/file_accessor.rb +0 -18
- data/examples/passing/file_accessor_spec.rb +0 -37
- data/examples/passing/filtered_formatter.rb +0 -17
- data/examples/passing/filtered_formatter_example.rb +0 -31
- data/examples/passing/greeter_spec.rb +0 -30
- data/examples/passing/helper_method_example.rb +0 -12
- data/examples/passing/implicit_docstrings_example.rb +0 -16
- data/examples/passing/io_processor.rb +0 -8
- data/examples/passing/io_processor_spec.rb +0 -20
- data/examples/passing/mocking_example.rb +0 -25
- data/examples/passing/multi_threaded_example_group_runner.rb +0 -26
- data/examples/passing/nested_classes_example.rb +0 -35
- data/examples/passing/options_example.rb +0 -29
- data/examples/passing/options_formatter.rb +0 -20
- data/examples/passing/partial_mock_example.rb +0 -27
- data/examples/passing/pending_example.rb +0 -18
- data/examples/passing/predicate_example.rb +0 -25
- data/examples/passing/shared_example_group_example.rb +0 -43
- data/examples/passing/shared_stack_examples.rb +0 -36
- data/examples/passing/simple_matcher_example.rb +0 -29
- data/examples/passing/stack.rb +0 -36
- data/examples/passing/stack_spec.rb +0 -63
- data/examples/passing/stack_spec_with_nested_example_groups.rb +0 -66
- data/examples/passing/stubbing_example.rb +0 -67
- data/examples/passing/yielding_example.rb +0 -31
- data/examples/ruby1.9.compatibility/access_to_constants_spec.rb +0 -85
- data/features-pending/cli/conditional_exclusion.feature +0 -39
- data/features-pending/heckle/heckle.feature +0 -56
- data/features/before_and_after_blocks/before_and_after_blocks.feature +0 -167
- data/features/command_line/line_number_option.feature +0 -56
- data/features/command_line/line_number_option_with_example_with_no_name.feature +0 -22
- data/features/example_groups/define_example_attribute.feature +0 -41
- data/features/example_groups/example_group_with_should_methods.feature +0 -29
- data/features/example_groups/implicit_docstrings.feature +0 -59
- data/features/example_groups/nested_groups.feature +0 -32
- data/features/expectations/customized_message.feature +0 -54
- data/features/expectations/expect_change.feature +0 -65
- data/features/expectations/expect_error.feature +0 -44
- data/features/extensions/custom_example_group.feature +0 -19
- data/features/formatters/custom_formatter.feature +0 -30
- data/features/formatters/nested_formatter.feature +0 -32
- data/features/interop/cucumber_stubs_dont_leak.feature +0 -11
- data/features/interop/examples_and_tests_together.feature +0 -84
- data/features/interop/rspec_output.feature +0 -25
- data/features/interop/test_but_not_test_unit.feature +0 -26
- data/features/interop/test_case_with_should_methods.feature +0 -46
- data/features/load_paths/add_lib_to_load_path.feature +0 -20
- data/features/load_paths/add_spec_to_load_path.feature +0 -20
- data/features/matchers/define_diffable_matcher.feature +0 -26
- data/features/matchers/define_matcher.feature +0 -179
- data/features/matchers/define_matcher_outside_rspec.feature +0 -37
- data/features/matchers/define_matcher_with_fluent_interface.feature +0 -48
- data/features/matchers/define_wrapped_matcher.feature +0 -56
- data/features/matchers/match_unless_raises.feature +0 -60
- data/features/matchers/match_unless_raises_unexpected_error.feature +0 -39
- data/features/mock_framework_integration/use_flexmock.feature +0 -27
- data/features/mock_framework_integration/use_mocha.feature +0 -27
- data/features/mock_framework_integration/use_rr.feature +0 -27
- data/features/mocks/block_local_expectations.feature +0 -62
- data/features/mocks/mix_stubs_and_mocks.feature +0 -22
- data/features/mocks/stub_implementation.feature +0 -26
- data/features/pending/pending_examples.feature +0 -81
- data/features/runner/specify_line_number.feature +0 -32
- data/features/spec_helper/spec_helper.feature +0 -25
- data/features/step_definitions/running_rspec_steps.rb +0 -52
- data/features/step_definitions/stubbing_steps.rb +0 -16
- data/features/subject/explicit_subject.feature +0 -31
- data/features/subject/implicit_subject.feature +0 -43
- data/features/support/env.rb +0 -83
- data/features/support/matchers/smart_match.rb +0 -31
- data/init.rb +0 -9
- data/lib/autotest/discover.rb +0 -3
- data/lib/autotest/rspec.rb +0 -54
- data/lib/spec.rb +0 -8
- data/lib/spec/adapters/mock_frameworks/flexmock.rb +0 -24
- data/lib/spec/adapters/mock_frameworks/mocha.rb +0 -25
- data/lib/spec/adapters/mock_frameworks/rr.rb +0 -22
- data/lib/spec/adapters/mock_frameworks/rspec.rb +0 -21
- data/lib/spec/autorun.rb +0 -3
- data/lib/spec/deprecation.rb +0 -41
- data/lib/spec/dsl.rb +0 -1
- data/lib/spec/dsl/main.rb +0 -93
- data/lib/spec/example.rb +0 -164
- data/lib/spec/example/args_and_options.rb +0 -27
- data/lib/spec/example/before_and_after_hooks.rb +0 -93
- data/lib/spec/example/errors.rb +0 -25
- data/lib/spec/example/example_group.rb +0 -10
- data/lib/spec/example/example_group_factory.rb +0 -82
- data/lib/spec/example/example_group_hierarchy.rb +0 -53
- data/lib/spec/example/example_group_methods.rb +0 -287
- data/lib/spec/example/example_group_proxy.rb +0 -61
- data/lib/spec/example/example_matcher.rb +0 -43
- data/lib/spec/example/example_methods.rb +0 -152
- data/lib/spec/example/example_proxy.rb +0 -41
- data/lib/spec/example/module_reopening_fix.rb +0 -43
- data/lib/spec/example/pending.rb +0 -18
- data/lib/spec/example/predicate_matchers.rb +0 -46
- data/lib/spec/example/shared_example_group.rb +0 -59
- data/lib/spec/example/subject.rb +0 -114
- data/lib/spec/expectations.rb +0 -35
- data/lib/spec/expectations/errors.rb +0 -12
- data/lib/spec/expectations/extensions.rb +0 -1
- data/lib/spec/expectations/extensions/kernel.rb +0 -52
- data/lib/spec/expectations/fail_with.rb +0 -45
- data/lib/spec/expectations/handler.rb +0 -50
- data/lib/spec/extensions/instance_exec.rb +0 -31
- data/lib/spec/interop/test.rb +0 -44
- data/lib/spec/interop/test/unit/autorunner.rb +0 -6
- data/lib/spec/interop/test/unit/testcase.rb +0 -56
- data/lib/spec/interop/test/unit/testresult.rb +0 -6
- data/lib/spec/interop/test/unit/testsuite_adapter.rb +0 -36
- data/lib/spec/interop/test/unit/ui/console/testrunner.rb +0 -61
- data/lib/spec/matchers.rb +0 -214
- data/lib/spec/matchers/be.rb +0 -249
- data/lib/spec/matchers/be_close.rb +0 -32
- data/lib/spec/matchers/be_instance_of.rb +0 -26
- data/lib/spec/matchers/be_kind_of.rb +0 -26
- data/lib/spec/matchers/change.rb +0 -151
- data/lib/spec/matchers/compatibility.rb +0 -14
- data/lib/spec/matchers/dsl.rb +0 -20
- data/lib/spec/matchers/eql.rb +0 -42
- data/lib/spec/matchers/equal.rb +0 -53
- data/lib/spec/matchers/errors.rb +0 -5
- data/lib/spec/matchers/exist.rb +0 -16
- data/lib/spec/matchers/generated_descriptions.rb +0 -36
- data/lib/spec/matchers/has.rb +0 -35
- data/lib/spec/matchers/have.rb +0 -152
- data/lib/spec/matchers/include.rb +0 -44
- data/lib/spec/matchers/match.rb +0 -21
- data/lib/spec/matchers/match_array.rb +0 -71
- data/lib/spec/matchers/matcher.rb +0 -132
- data/lib/spec/matchers/method_missing.rb +0 -9
- data/lib/spec/matchers/operator_matcher.rb +0 -83
- data/lib/spec/matchers/pretty.rb +0 -37
- data/lib/spec/matchers/raise_exception.rb +0 -131
- data/lib/spec/matchers/respond_to.rb +0 -71
- data/lib/spec/matchers/satisfy.rb +0 -47
- data/lib/spec/matchers/simple_matcher.rb +0 -134
- data/lib/spec/matchers/throw_symbol.rb +0 -100
- data/lib/spec/matchers/wrap_expectation.rb +0 -55
- data/lib/spec/mocks.rb +0 -200
- data/lib/spec/mocks/argument_expectation.rb +0 -51
- data/lib/spec/mocks/argument_matchers.rb +0 -237
- data/lib/spec/mocks/error_generator.rb +0 -92
- data/lib/spec/mocks/errors.rb +0 -10
- data/lib/spec/mocks/example_methods.rb +0 -69
- data/lib/spec/mocks/extensions.rb +0 -1
- data/lib/spec/mocks/extensions/object.rb +0 -3
- data/lib/spec/mocks/framework.rb +0 -15
- data/lib/spec/mocks/message_expectation.rb +0 -344
- data/lib/spec/mocks/methods.rb +0 -94
- data/lib/spec/mocks/mock.rb +0 -71
- data/lib/spec/mocks/order_group.rb +0 -29
- data/lib/spec/mocks/proxy.rb +0 -254
- data/lib/spec/mocks/space.rb +0 -28
- data/lib/spec/rake/spectask.rb +0 -230
- data/lib/spec/rake/verify_rcov.rb +0 -52
- data/lib/spec/ruby.rb +0 -9
- data/lib/spec/runner.rb +0 -66
- data/lib/spec/runner/backtrace_tweaker.rb +0 -78
- data/lib/spec/runner/class_and_arguments_parser.rb +0 -14
- data/lib/spec/runner/command_line.rb +0 -15
- data/lib/spec/runner/configuration.rb +0 -202
- data/lib/spec/runner/differs/default.rb +0 -93
- data/lib/spec/runner/differs/load-diff-lcs.rb +0 -12
- data/lib/spec/runner/drb_command_line.rb +0 -32
- data/lib/spec/runner/example_group_runner.rb +0 -58
- data/lib/spec/runner/extensions/kernel.rb +0 -9
- data/lib/spec/runner/formatter/base_formatter.rb +0 -139
- data/lib/spec/runner/formatter/base_text_formatter.rb +0 -142
- data/lib/spec/runner/formatter/failing_example_groups_formatter.rb +0 -25
- data/lib/spec/runner/formatter/failing_examples_formatter.rb +0 -20
- data/lib/spec/runner/formatter/html_formatter.rb +0 -338
- data/lib/spec/runner/formatter/nested_text_formatter.rb +0 -50
- data/lib/spec/runner/formatter/no_op_method_missing.rb +0 -21
- data/lib/spec/runner/formatter/profile_formatter.rb +0 -47
- data/lib/spec/runner/formatter/progress_bar_formatter.rb +0 -33
- data/lib/spec/runner/formatter/silent_formatter.rb +0 -10
- data/lib/spec/runner/formatter/snippet_extractor.rb +0 -52
- data/lib/spec/runner/formatter/specdoc_formatter.rb +0 -33
- data/lib/spec/runner/formatter/text_mate_formatter.rb +0 -16
- data/lib/spec/runner/heckle_runner.rb +0 -77
- data/lib/spec/runner/heckle_runner_unsupported.rb +0 -10
- data/lib/spec/runner/line_number_query.rb +0 -78
- data/lib/spec/runner/option_parser.rb +0 -225
- data/lib/spec/runner/options.rb +0 -406
- data/lib/spec/runner/reporter.rb +0 -171
- data/lib/spec/stubs/cucumber.rb +0 -5
- data/lib/spec/test/unit.rb +0 -10
- data/lib/spec/version.rb +0 -14
- data/resources/helpers/cmdline.rb +0 -8
- data/resources/rake/examples.rake +0 -7
- data/resources/rake/examples_with_rcov.rake +0 -9
- data/resources/rake/failing_examples_with_html.rake +0 -9
- data/resources/rake/verify_rcov.rake +0 -7
- data/spec/README.jruby +0 -15
- data/spec/autotest/autotest_helper.rb +0 -8
- data/spec/autotest/autotest_matchers.rb +0 -38
- data/spec/autotest/discover_spec.rb +0 -8
- data/spec/autotest/failed_results_re_spec.rb +0 -31
- data/spec/autotest/rspec_spec.rb +0 -126
- data/spec/ruby_forker.rb +0 -13
- data/spec/spec.opts +0 -6
- data/spec/spec/dsl/main_spec.rb +0 -103
- data/spec/spec/example/example_group_class_definition_spec.rb +0 -51
- data/spec/spec/example/example_group_factory_spec.rb +0 -180
- data/spec/spec/example/example_group_methods_spec.rb +0 -778
- data/spec/spec/example/example_group_proxy_spec.rb +0 -107
- data/spec/spec/example/example_group_spec.rb +0 -632
- data/spec/spec/example/example_matcher_spec.rb +0 -85
- data/spec/spec/example/example_methods_spec.rb +0 -162
- data/spec/spec/example/example_proxy_spec.rb +0 -57
- data/spec/spec/example/helper_method_spec.rb +0 -24
- data/spec/spec/example/nested_example_group_spec.rb +0 -71
- data/spec/spec/example/pending_module_spec.rb +0 -58
- data/spec/spec/example/predicate_matcher_spec.rb +0 -41
- data/spec/spec/example/shared_example_group_spec.rb +0 -257
- data/spec/spec/example/subclassing_example_group_spec.rb +0 -25
- data/spec/spec/example/subject_spec.rb +0 -110
- data/spec/spec/expectations/differs/default_spec.rb +0 -194
- data/spec/spec/expectations/extensions/kernel_spec.rb +0 -45
- data/spec/spec/expectations/fail_with_spec.rb +0 -96
- data/spec/spec/expectations/handler_spec.rb +0 -206
- data/spec/spec/expectations/wrap_expectation_spec.rb +0 -31
- data/spec/spec/interop/test/unit/resources/spec_that_fails.rb +0 -10
- data/spec/spec/interop/test/unit/resources/spec_that_passes.rb +0 -10
- data/spec/spec/interop/test/unit/resources/spec_with_errors.rb +0 -10
- data/spec/spec/interop/test/unit/resources/spec_with_options_hash.rb +0 -13
- data/spec/spec/interop/test/unit/resources/test_case_that_fails.rb +0 -10
- data/spec/spec/interop/test/unit/resources/test_case_that_passes.rb +0 -10
- data/spec/spec/interop/test/unit/resources/test_case_with_errors.rb +0 -10
- data/spec/spec/interop/test/unit/resources/test_case_with_various_names.rb +0 -22
- data/spec/spec/interop/test/unit/resources/testsuite_adapter_spec_with_test_unit.rb +0 -38
- data/spec/spec/interop/test/unit/spec_spec.rb +0 -48
- data/spec/spec/interop/test/unit/test_unit_spec_helper.rb +0 -18
- data/spec/spec/interop/test/unit/testcase_spec.rb +0 -50
- data/spec/spec/interop/test/unit/testsuite_adapter_spec.rb +0 -9
- data/spec/spec/matchers/be_close_spec.rb +0 -50
- data/spec/spec/matchers/be_instance_of_spec.rb +0 -36
- data/spec/spec/matchers/be_kind_of_spec.rb +0 -33
- data/spec/spec/matchers/be_spec.rb +0 -460
- data/spec/spec/matchers/change_spec.rb +0 -349
- data/spec/spec/matchers/compatibility_spec.rb +0 -28
- data/spec/spec/matchers/description_generation_spec.rb +0 -160
- data/spec/spec/matchers/dsl_spec.rb +0 -34
- data/spec/spec/matchers/eql_spec.rb +0 -33
- data/spec/spec/matchers/equal_spec.rb +0 -57
- data/spec/spec/matchers/exist_spec.rb +0 -65
- data/spec/spec/matchers/has_spec.rb +0 -190
- data/spec/spec/matchers/have_spec.rb +0 -381
- data/spec/spec/matchers/include_spec.rb +0 -88
- data/spec/spec/matchers/match_array_spec.rb +0 -115
- data/spec/spec/matchers/match_spec.rb +0 -57
- data/spec/spec/matchers/matcher_spec.rb +0 -289
- data/spec/spec/matchers/matchers_spec.rb +0 -2
- data/spec/spec/matchers/operator_matcher_spec.rb +0 -191
- data/spec/spec/matchers/pretty_spec.rb +0 -22
- data/spec/spec/matchers/raise_exception_spec.rb +0 -345
- data/spec/spec/matchers/respond_to_spec.rb +0 -116
- data/spec/spec/matchers/satisfy_spec.rb +0 -36
- data/spec/spec/matchers/simple_matcher_spec.rb +0 -100
- data/spec/spec/matchers/throw_symbol_spec.rb +0 -121
- data/spec/spec/mocks/and_yield_spec.rb +0 -117
- data/spec/spec/mocks/any_number_of_times_spec.rb +0 -36
- data/spec/spec/mocks/argument_expectation_spec.rb +0 -23
- data/spec/spec/mocks/argument_matchers_spec.rb +0 -19
- data/spec/spec/mocks/at_least_spec.rb +0 -97
- data/spec/spec/mocks/at_most_spec.rb +0 -93
- data/spec/spec/mocks/bug_report_10260_spec.rb +0 -8
- data/spec/spec/mocks/bug_report_10263_spec.rb +0 -27
- data/spec/spec/mocks/bug_report_1049_spec.rb +0 -30
- data/spec/spec/mocks/bug_report_11545_spec.rb +0 -32
- data/spec/spec/mocks/bug_report_15719_spec.rb +0 -30
- data/spec/spec/mocks/bug_report_496_spec.rb +0 -17
- data/spec/spec/mocks/bug_report_600_spec.rb +0 -22
- data/spec/spec/mocks/bug_report_7611_spec.rb +0 -19
- data/spec/spec/mocks/bug_report_7805_spec.rb +0 -22
- data/spec/spec/mocks/bug_report_8165_spec.rb +0 -31
- data/spec/spec/mocks/bug_report_8302_spec.rb +0 -26
- data/spec/spec/mocks/bug_report_830_spec.rb +0 -21
- data/spec/spec/mocks/bug_report_957_spec.rb +0 -22
- data/spec/spec/mocks/double_spec.rb +0 -12
- data/spec/spec/mocks/failing_argument_matchers_spec.rb +0 -95
- data/spec/spec/mocks/hash_including_matcher_spec.rb +0 -90
- data/spec/spec/mocks/hash_not_including_matcher_spec.rb +0 -67
- data/spec/spec/mocks/mock_ordering_spec.rb +0 -94
- data/spec/spec/mocks/mock_space_spec.rb +0 -54
- data/spec/spec/mocks/mock_spec.rb +0 -601
- data/spec/spec/mocks/multiple_return_value_spec.rb +0 -113
- data/spec/spec/mocks/nil_expectation_warning_spec.rb +0 -53
- data/spec/spec/mocks/null_object_mock_spec.rb +0 -54
- data/spec/spec/mocks/once_counts_spec.rb +0 -53
- data/spec/spec/mocks/options_hash_spec.rb +0 -35
- data/spec/spec/mocks/partial_mock_spec.rb +0 -164
- data/spec/spec/mocks/partial_mock_using_mocks_directly_spec.rb +0 -66
- data/spec/spec/mocks/passing_argument_matchers_spec.rb +0 -145
- data/spec/spec/mocks/precise_counts_spec.rb +0 -52
- data/spec/spec/mocks/record_messages_spec.rb +0 -26
- data/spec/spec/mocks/stub_chain_spec.rb +0 -42
- data/spec/spec/mocks/stub_implementation_spec.rb +0 -31
- data/spec/spec/mocks/stub_spec.rb +0 -203
- data/spec/spec/mocks/stubbed_message_expectations_spec.rb +0 -26
- data/spec/spec/mocks/twice_counts_spec.rb +0 -67
- data/spec/spec/mocks/unstub_spec.rb +0 -127
- data/spec/spec/package/bin_spec_spec.rb +0 -16
- data/spec/spec/rake/spectask_spec.rb +0 -150
- data/spec/spec/runner/class_and_argument_parser_spec.rb +0 -23
- data/spec/spec/runner/command_line_spec.rb +0 -162
- data/spec/spec/runner/configuration_spec.rb +0 -320
- data/spec/spec/runner/drb_command_line_spec.rb +0 -146
- data/spec/spec/runner/empty_file.txt +0 -0
- data/spec/spec/runner/example_group_runner_spec.rb +0 -26
- data/spec/spec/runner/examples.txt +0 -2
- data/spec/spec/runner/failed.txt +0 -3
- data/spec/spec/runner/formatter/base_formatter_spec.rb +0 -30
- data/spec/spec/runner/formatter/base_text_formatter_spec.rb +0 -113
- data/spec/spec/runner/formatter/failing_example_groups_formatter_spec.rb +0 -45
- data/spec/spec/runner/formatter/failing_examples_formatter_spec.rb +0 -33
- data/spec/spec/runner/formatter/html_formatted-1.8.6-jruby.html +0 -377
- data/spec/spec/runner/formatter/html_formatted-1.8.6.html +0 -377
- data/spec/spec/runner/formatter/html_formatted-1.8.7.html +0 -377
- data/spec/spec/runner/formatter/html_formatted-1.9.1.html +0 -377
- data/spec/spec/runner/formatter/html_formatted-1.9.2.html +0 -377
- data/spec/spec/runner/formatter/html_formatter_spec.rb +0 -118
- data/spec/spec/runner/formatter/nested_text_formatter_spec.rb +0 -329
- data/spec/spec/runner/formatter/profile_formatter_spec.rb +0 -70
- data/spec/spec/runner/formatter/progress_bar_formatter_spec.rb +0 -149
- data/spec/spec/runner/formatter/snippet_extractor_spec.rb +0 -18
- data/spec/spec/runner/formatter/specdoc_formatter_spec.rb +0 -159
- data/spec/spec/runner/formatter/text_mate_formatted-1.8.6-jruby.html +0 -371
- data/spec/spec/runner/formatter/text_mate_formatted-1.8.6.html +0 -371
- data/spec/spec/runner/formatter/text_mate_formatted-1.8.7.html +0 -371
- data/spec/spec/runner/formatter/text_mate_formatted-1.9.1.html +0 -371
- data/spec/spec/runner/formatter/text_mate_formatted-1.9.2.html +0 -371
- data/spec/spec/runner/formatter/text_mate_formatter_spec.rb +0 -106
- data/spec/spec/runner/heckle_runner_spec.rb +0 -78
- data/spec/spec/runner/heckler_spec.rb +0 -20
- data/spec/spec/runner/line_number_query/line_number_query_fixture.rb +0 -70
- data/spec/spec/runner/line_number_query_spec.rb +0 -129
- data/spec/spec/runner/noisy_backtrace_tweaker_spec.rb +0 -51
- data/spec/spec/runner/option_parser_spec.rb +0 -551
- data/spec/spec/runner/options_spec.rb +0 -554
- data/spec/spec/runner/output_one_time_fixture.rb +0 -7
- data/spec/spec/runner/output_one_time_fixture_runner.rb +0 -7
- data/spec/spec/runner/output_one_time_spec.rb +0 -15
- data/spec/spec/runner/quiet_backtrace_tweaker_spec.rb +0 -123
- data/spec/spec/runner/reporter_spec.rb +0 -244
- data/spec/spec/runner/resources/a_bar.rb +0 -0
- data/spec/spec/runner/resources/a_foo.rb +0 -0
- data/spec/spec/runner/resources/a_spec.rb +0 -1
- data/spec/spec/runner/resources/custom_example_group_runner.rb +0 -14
- data/spec/spec/runner/resources/utf8_encoded.rb +0 -8
- data/spec/spec/runner/spec.opts +0 -2
- data/spec/spec/runner/spec_drb.opts +0 -2
- data/spec/spec/runner/spec_spaced.opts +0 -2
- data/spec/spec/runner_spec.rb +0 -13
- data/spec/spec_helper.rb +0 -113
- data/spec/support/macros.rb +0 -29
- data/spec/support/spec_classes.rb +0 -133
data/lib/spec/runner/options.rb
DELETED
@@ -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
|
data/lib/spec/runner/reporter.rb
DELETED
@@ -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
|