rspec 1.0.0 → 1.3.1
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 +7 -0
- data/History.rdoc +1546 -0
- data/{MIT-LICENSE → License.txt} +3 -1
- data/Manifest.txt +384 -0
- data/README.rdoc +41 -0
- data/Rakefile +94 -229
- data/Ruby1.9.rdoc +31 -0
- data/TODO.txt +17 -0
- data/Upgrade.rdoc +260 -0
- data/bin/autospec +4 -0
- data/bin/spec +5 -3
- data/cucumber.yml +5 -0
- data/examples/failing/README.txt +11 -0
- data/examples/failing/diffing_spec.rb +36 -0
- data/examples/failing/failing_implicit_docstrings_example.rb +17 -0
- data/examples/failing/failure_in_after.rb +10 -0
- data/examples/failing/failure_in_before.rb +10 -0
- data/examples/failing/mocking_example.rb +38 -0
- data/examples/failing/mocking_with_flexmock.rb +26 -0
- data/examples/failing/mocking_with_mocha.rb +25 -0
- data/examples/failing/mocking_with_rr.rb +27 -0
- data/examples/failing/partial_mock_example.rb +18 -0
- data/examples/failing/pending_example.rb +7 -0
- data/examples/failing/predicate_example.rb +32 -0
- data/examples/failing/raising_example.rb +47 -0
- data/examples/failing/syntax_error_example.rb +7 -0
- data/examples/failing/team_spec.rb +41 -0
- data/examples/failing/timeout_behaviour.rb +5 -0
- data/examples/{custom_formatter.rb → passing/custom_formatter.rb} +1 -1
- data/examples/passing/dynamic_spec.rb +7 -0
- data/examples/{file_accessor.rb → passing/file_accessor.rb} +18 -18
- data/examples/{file_accessor_spec.rb → passing/file_accessor_spec.rb} +37 -38
- data/examples/passing/filtered_formatter.rb +17 -0
- data/examples/passing/filtered_formatter_example.rb +31 -0
- data/examples/{greeter_spec.rb → passing/greeter_spec.rb} +1 -1
- data/examples/passing/helper_method_example.rb +12 -0
- data/examples/passing/implicit_docstrings_example.rb +16 -0
- data/examples/{io_processor.rb → passing/io_processor.rb} +8 -8
- data/examples/{io_processor_spec.rb → passing/io_processor_spec.rb} +2 -3
- data/examples/{mocking_example.rb → passing/mocking_example.rb} +0 -2
- data/examples/{multi_threaded_behaviour_runner.rb → passing/multi_threaded_example_group_runner.rb} +10 -9
- data/examples/passing/nested_classes_example.rb +35 -0
- data/examples/passing/options_example.rb +29 -0
- data/examples/passing/options_formatter.rb +20 -0
- data/examples/{partial_mock_example.rb → passing/partial_mock_example.rb} +2 -3
- data/examples/passing/pending_example.rb +18 -0
- data/examples/{predicate_example.rb → passing/predicate_example.rb} +1 -3
- data/examples/{shared_behaviours_example.rb → passing/shared_example_group_example.rb} +15 -11
- data/examples/passing/shared_stack_examples.rb +36 -0
- data/examples/passing/simple_matcher_example.rb +29 -0
- data/examples/{stack.rb → passing/stack.rb} +1 -1
- data/examples/{stack_spec.rb → passing/stack_spec.rb} +6 -40
- data/examples/passing/stack_spec_with_nested_example_groups.rb +66 -0
- data/examples/{stubbing_example.rb → passing/stubbing_example.rb} +1 -3
- data/examples/passing/yielding_example.rb +31 -0
- data/examples/ruby1.9.compatibility/access_to_constants_spec.rb +85 -0
- data/features/before_and_after_blocks/before_and_after_blocks.feature +167 -0
- data/features/command_line/line_number_option.feature +56 -0
- data/features/command_line/line_number_option_with_example_with_no_name.feature +22 -0
- data/features/example_groups/define_example_attribute.feature +41 -0
- data/features/example_groups/example_group_with_should_methods.feature +29 -0
- data/features/example_groups/implicit_docstrings.feature +59 -0
- data/features/example_groups/nested_groups.feature +32 -0
- data/features/expectations/customized_message.feature +54 -0
- data/features/expectations/expect_change.feature +65 -0
- data/features/expectations/expect_error.feature +44 -0
- data/features/extensions/custom_example_group.feature +19 -0
- data/features/formatters/custom_formatter.feature +30 -0
- data/features/formatters/nested_formatter.feature +32 -0
- data/features/interop/cucumber_stubs_dont_leak.feature +11 -0
- data/features/interop/examples_and_tests_together.feature +84 -0
- data/features/interop/rspec_output.feature +25 -0
- data/features/interop/test_but_not_test_unit.feature +26 -0
- data/features/interop/test_case_with_should_methods.feature +46 -0
- data/features/load_paths/add_lib_to_load_path.feature +20 -0
- data/features/load_paths/add_spec_to_load_path.feature +20 -0
- data/features/matchers/define_diffable_matcher.feature +26 -0
- data/features/matchers/define_matcher.feature +179 -0
- data/features/matchers/define_matcher_outside_rspec.feature +38 -0
- data/features/matchers/define_matcher_with_fluent_interface.feature +48 -0
- data/features/matchers/define_wrapped_matcher.feature +56 -0
- data/features/matchers/match_unless_raises.feature +60 -0
- data/features/matchers/match_unless_raises_unexpected_error.feature +39 -0
- data/features/mock_framework_integration/use_flexmock.feature +27 -0
- data/features/mock_framework_integration/use_mocha.feature +27 -0
- data/features/mock_framework_integration/use_rr.feature +27 -0
- data/features/mocks/block_local_expectations.feature +62 -0
- data/features/mocks/mix_stubs_and_mocks.feature +22 -0
- data/features/mocks/stub_implementation.feature +26 -0
- data/features/pending/pending_examples.feature +81 -0
- data/features/runner/specify_line_number.feature +32 -0
- data/features/spec_helper/spec_helper.feature +25 -0
- data/features/step_definitions/running_rspec_steps.rb +52 -0
- data/features/step_definitions/stubbing_steps.rb +16 -0
- data/features/subject/explicit_subject.feature +31 -0
- data/features/subject/implicit_subject.feature +43 -0
- data/features/support/env.rb +83 -0
- data/features/support/matchers/smart_match.rb +31 -0
- data/geminstaller.yml +29 -0
- data/init.rb +9 -0
- data/lib/autotest/discover.rb +3 -0
- data/lib/autotest/rspec.rb +54 -0
- data/lib/spec/adapters/mock_frameworks/flexmock.rb +24 -0
- data/{plugins → lib/spec/adapters}/mock_frameworks/mocha.rb +8 -4
- data/lib/spec/adapters/mock_frameworks/rr.rb +22 -0
- data/lib/spec/adapters/mock_frameworks/rspec.rb +21 -0
- data/lib/spec/autorun.rb +3 -0
- data/lib/spec/deprecation.rb +41 -0
- data/lib/spec/dsl/main.rb +93 -0
- data/lib/spec/dsl.rb +1 -10
- data/lib/spec/example/args_and_options.rb +27 -0
- data/lib/spec/example/before_and_after_hooks.rb +93 -0
- data/lib/spec/example/errors.rb +25 -0
- data/lib/spec/example/example_group.rb +10 -0
- data/lib/spec/example/example_group_factory.rb +82 -0
- data/lib/spec/example/example_group_hierarchy.rb +53 -0
- data/lib/spec/example/example_group_methods.rb +287 -0
- data/lib/spec/example/example_group_proxy.rb +61 -0
- data/lib/spec/example/example_matcher.rb +43 -0
- data/lib/spec/example/example_methods.rb +152 -0
- data/lib/spec/example/example_proxy.rb +41 -0
- data/lib/spec/example/module_reopening_fix.rb +43 -0
- data/lib/spec/example/pending.rb +18 -0
- data/lib/spec/example/predicate_matchers.rb +46 -0
- data/lib/spec/example/shared_example_group.rb +59 -0
- data/lib/spec/example/subject.rb +114 -0
- data/lib/spec/example.rb +164 -0
- data/lib/spec/expectations/errors.rb +7 -1
- data/lib/spec/expectations/extensions/kernel.rb +52 -0
- data/lib/spec/expectations/extensions.rb +1 -2
- data/lib/spec/expectations/fail_with.rb +45 -0
- data/lib/spec/expectations/handler.rb +37 -30
- data/lib/spec/expectations.rb +2 -23
- data/lib/spec/extensions/instance_exec.rb +31 -0
- data/lib/spec/interop/test/unit/autorunner.rb +6 -0
- data/lib/spec/interop/test/unit/testcase.rb +56 -0
- data/lib/spec/interop/test/unit/testresult.rb +6 -0
- data/lib/spec/interop/test/unit/testsuite_adapter.rb +36 -0
- data/lib/spec/interop/test/unit/ui/console/testrunner.rb +61 -0
- data/lib/spec/interop/test.rb +44 -0
- data/lib/spec/matchers/be.rb +183 -140
- data/lib/spec/matchers/be_close.rb +18 -23
- data/lib/spec/matchers/be_instance_of.rb +26 -0
- data/lib/spec/matchers/be_kind_of.rb +26 -0
- data/lib/spec/matchers/change.rb +72 -41
- data/lib/spec/matchers/compatibility.rb +14 -0
- data/lib/spec/matchers/dsl.rb +20 -0
- data/lib/spec/matchers/eql.rb +25 -26
- data/lib/spec/matchers/equal.rb +35 -25
- data/lib/spec/matchers/errors.rb +5 -0
- data/lib/spec/matchers/exist.rb +16 -0
- data/lib/spec/matchers/generated_descriptions.rb +36 -0
- data/lib/spec/matchers/has.rb +17 -26
- data/lib/spec/matchers/have.rb +36 -24
- data/lib/spec/matchers/include.rb +22 -48
- data/lib/spec/matchers/match.rb +11 -31
- data/lib/spec/matchers/match_array.rb +71 -0
- data/lib/spec/matchers/matcher.rb +132 -0
- data/lib/spec/matchers/method_missing.rb +9 -0
- data/lib/spec/matchers/operator_matcher.rb +55 -44
- data/lib/spec/matchers/pretty.rb +37 -0
- data/lib/spec/matchers/raise_exception.rb +131 -0
- data/lib/spec/matchers/respond_to.rb +35 -9
- data/lib/spec/matchers/satisfy.rb +2 -2
- data/lib/spec/matchers/simple_matcher.rb +134 -0
- data/lib/spec/matchers/throw_symbol.rb +56 -31
- data/lib/spec/matchers/wrap_expectation.rb +55 -0
- data/lib/spec/matchers.rb +104 -48
- data/lib/spec/mocks/argument_expectation.rb +28 -112
- data/lib/spec/mocks/argument_matchers.rb +237 -0
- data/lib/spec/mocks/error_generator.rb +20 -13
- data/lib/spec/mocks/errors.rb +1 -1
- data/lib/spec/mocks/example_methods.rb +69 -0
- data/lib/spec/mocks/extensions.rb +1 -0
- data/lib/spec/mocks/framework.rb +15 -0
- data/lib/spec/mocks/message_expectation.rb +206 -93
- data/lib/spec/mocks/methods.rb +66 -7
- data/lib/spec/mocks/mock.rb +53 -11
- data/lib/spec/mocks/proxy.rb +160 -55
- data/lib/spec/mocks/space.rb +2 -2
- data/lib/spec/mocks.rb +14 -23
- data/lib/spec/rake/spectask.rb +108 -53
- data/lib/spec/rake/verify_rcov.rb +4 -4
- data/lib/spec/ruby.rb +9 -0
- data/lib/spec/runner/backtrace_tweaker.rb +45 -23
- data/lib/spec/runner/class_and_arguments_parser.rb +14 -0
- data/lib/spec/runner/command_line.rb +7 -14
- data/lib/spec/runner/configuration.rb +202 -0
- data/lib/spec/runner/differs/default.rb +93 -0
- data/lib/spec/runner/differs/load-diff-lcs.rb +12 -0
- data/lib/spec/runner/drb_command_line.rb +18 -7
- data/lib/spec/runner/example_group_runner.rb +58 -0
- data/lib/spec/runner/extensions/kernel.rb +5 -46
- data/lib/spec/runner/formatter/base_formatter.rb +97 -26
- data/lib/spec/runner/formatter/base_text_formatter.rb +79 -39
- data/lib/spec/runner/formatter/failing_example_groups_formatter.rb +25 -0
- data/lib/spec/runner/formatter/failing_examples_formatter.rb +6 -8
- data/lib/spec/runner/formatter/html_formatter.rb +101 -75
- data/lib/spec/runner/formatter/nested_text_formatter.rb +50 -0
- data/lib/spec/runner/formatter/no_op_method_missing.rb +21 -0
- data/lib/spec/runner/formatter/profile_formatter.rb +47 -0
- data/lib/spec/runner/formatter/progress_bar_formatter.rb +11 -8
- data/lib/spec/runner/formatter/silent_formatter.rb +10 -0
- data/lib/spec/runner/formatter/snippet_extractor.rb +2 -2
- data/lib/spec/runner/formatter/specdoc_formatter.rb +20 -15
- data/lib/spec/runner/formatter/text_mate_formatter.rb +16 -0
- data/lib/spec/runner/heckle_runner.rb +56 -56
- data/lib/spec/runner/{heckle_runner_win.rb → heckle_runner_unsupported.rb} +10 -10
- data/lib/spec/runner/line_number_query.rb +78 -0
- data/lib/spec/runner/option_parser.rb +147 -148
- data/lib/spec/runner/options.rb +343 -95
- data/lib/spec/runner/reporter.rb +117 -60
- data/lib/spec/runner.rb +39 -138
- data/lib/spec/stubs/cucumber.rb +5 -0
- data/lib/spec/test/unit.rb +10 -0
- data/lib/spec/version.rb +14 -22
- data/lib/spec.rb +5 -10
- data/resources/helpers/cmdline.rb +8 -0
- data/resources/rake/examples.rake +7 -0
- data/resources/rake/examples_with_rcov.rake +9 -0
- data/resources/rake/failing_examples_with_html.rake +9 -0
- data/resources/rake/verify_rcov.rake +7 -0
- data/spec/README.jruby +15 -0
- data/spec/autotest/autotest_helper.rb +8 -0
- data/spec/autotest/autotest_matchers.rb +38 -0
- data/spec/autotest/discover_spec.rb +8 -0
- data/spec/autotest/failed_results_re_spec.rb +31 -0
- data/spec/autotest/rspec_spec.rb +126 -0
- data/spec/ruby_forker.rb +13 -0
- data/spec/spec/dsl/main_spec.rb +103 -0
- data/spec/spec/example/example_group_class_definition_spec.rb +51 -0
- data/spec/spec/example/example_group_factory_spec.rb +180 -0
- data/spec/spec/example/example_group_methods_spec.rb +778 -0
- data/spec/spec/example/example_group_proxy_spec.rb +107 -0
- data/spec/spec/example/example_group_spec.rb +632 -0
- data/spec/spec/example/example_matcher_spec.rb +85 -0
- data/spec/spec/example/example_methods_spec.rb +162 -0
- data/spec/spec/example/example_proxy_spec.rb +57 -0
- data/spec/spec/example/helper_method_spec.rb +24 -0
- data/spec/spec/{dsl/behaviour_eval_spec.rb → example/nested_example_group_spec.rb} +25 -3
- data/spec/spec/example/pending_module_spec.rb +58 -0
- data/spec/spec/example/predicate_matcher_spec.rb +41 -0
- data/spec/spec/example/shared_example_group_spec.rb +257 -0
- data/spec/spec/example/subclassing_example_group_spec.rb +25 -0
- data/spec/spec/example/subject_spec.rb +110 -0
- data/spec/spec/expectations/differs/default_spec.rb +100 -13
- data/spec/spec/expectations/extensions/{object_spec.rb → kernel_spec.rb} +13 -14
- data/spec/spec/expectations/fail_with_spec.rb +42 -17
- data/spec/spec/expectations/handler_spec.rb +206 -0
- data/spec/spec/expectations/wrap_expectation_spec.rb +31 -0
- data/spec/spec/interop/test/unit/resources/spec_that_fails.rb +10 -0
- data/spec/spec/interop/test/unit/resources/spec_that_passes.rb +10 -0
- data/spec/spec/interop/test/unit/resources/spec_with_errors.rb +10 -0
- data/spec/spec/interop/test/unit/resources/spec_with_options_hash.rb +13 -0
- data/spec/spec/interop/test/unit/resources/test_case_that_fails.rb +10 -0
- data/spec/spec/interop/test/unit/resources/test_case_that_passes.rb +10 -0
- data/spec/spec/interop/test/unit/resources/test_case_with_errors.rb +10 -0
- data/spec/spec/interop/test/unit/resources/test_case_with_various_names.rb +22 -0
- data/spec/spec/interop/test/unit/resources/testsuite_adapter_spec_with_test_unit.rb +38 -0
- data/spec/spec/interop/test/unit/spec_spec.rb +48 -0
- data/spec/spec/interop/test/unit/test_unit_spec_helper.rb +18 -0
- data/spec/spec/interop/test/unit/testcase_spec.rb +50 -0
- data/spec/spec/interop/test/unit/testsuite_adapter_spec.rb +9 -0
- data/spec/spec/matchers/be_close_spec.rb +32 -21
- data/spec/spec/matchers/be_instance_of_spec.rb +36 -0
- data/spec/spec/matchers/be_kind_of_spec.rb +33 -0
- data/spec/spec/matchers/be_spec.rb +261 -10
- data/spec/spec/matchers/change_spec.rb +178 -61
- data/spec/spec/matchers/compatibility_spec.rb +28 -0
- data/spec/spec/matchers/description_generation_spec.rb +47 -46
- data/spec/spec/matchers/dsl_spec.rb +34 -0
- data/spec/spec/matchers/eql_spec.rb +14 -9
- data/spec/spec/matchers/equal_spec.rb +43 -14
- data/spec/spec/matchers/exist_spec.rb +41 -24
- data/spec/spec/matchers/has_spec.rb +154 -1
- data/spec/spec/matchers/have_spec.rb +311 -189
- data/spec/spec/matchers/include_spec.rb +45 -2
- data/spec/spec/matchers/match_array_spec.rb +115 -0
- data/spec/spec/matchers/match_spec.rb +25 -5
- data/spec/spec/matchers/matcher_spec.rb +289 -0
- data/spec/spec/matchers/matchers_spec.rb +2 -0
- data/spec/spec/matchers/operator_matcher_spec.rb +48 -15
- data/spec/spec/matchers/raise_exception_spec.rb +345 -0
- data/spec/spec/matchers/respond_to_spec.rb +78 -16
- data/spec/spec/matchers/satisfy_spec.rb +1 -1
- data/spec/spec/matchers/simple_matcher_spec.rb +100 -0
- data/spec/spec/matchers/throw_symbol_spec.rb +111 -41
- data/spec/spec/mocks/and_yield_spec.rb +117 -0
- data/spec/spec/mocks/any_number_of_times_spec.rb +9 -2
- data/spec/spec/mocks/argument_expectation_spec.rb +19 -15
- data/spec/spec/mocks/argument_matchers_spec.rb +19 -0
- data/spec/spec/mocks/at_least_spec.rb +2 -2
- data/spec/spec/mocks/at_most_spec.rb +3 -3
- data/spec/spec/mocks/bug_report_10260_spec.rb +1 -1
- data/spec/spec/mocks/bug_report_10263_spec.rb +27 -0
- data/spec/spec/mocks/bug_report_11545_spec.rb +32 -0
- data/spec/spec/mocks/bug_report_15719_spec.rb +30 -0
- data/spec/spec/mocks/bug_report_496_spec.rb +17 -0
- data/spec/spec/mocks/bug_report_600_spec.rb +22 -0
- data/spec/spec/mocks/bug_report_7611_spec.rb +2 -2
- data/spec/spec/mocks/bug_report_7805_spec.rb +2 -2
- data/spec/spec/mocks/bug_report_8165_spec.rb +4 -4
- data/spec/spec/mocks/bug_report_8302_spec.rb +2 -2
- data/spec/spec/mocks/bug_report_830_spec.rb +21 -0
- data/spec/spec/mocks/double_spec.rb +12 -0
- data/spec/spec/mocks/failing_argument_matchers_spec.rb +95 -0
- data/spec/spec/mocks/hash_including_matcher_spec.rb +90 -0
- data/spec/spec/mocks/hash_not_including_matcher_spec.rb +67 -0
- data/spec/spec/mocks/mock_ordering_spec.rb +15 -5
- data/spec/spec/mocks/mock_space_spec.rb +1 -1
- data/spec/spec/mocks/mock_spec.rb +346 -129
- data/spec/spec/mocks/multiple_return_value_spec.rb +9 -9
- data/spec/spec/mocks/nil_expectation_warning_spec.rb +53 -0
- data/spec/spec/mocks/null_object_mock_spec.rb +15 -1
- data/spec/spec/mocks/once_counts_spec.rb +2 -2
- data/spec/spec/mocks/options_hash_spec.rb +19 -17
- data/spec/spec/mocks/partial_mock_spec.rb +124 -12
- data/spec/spec/mocks/partial_mock_using_mocks_directly_spec.rb +2 -2
- data/spec/spec/mocks/passing_argument_matchers_spec.rb +145 -0
- data/spec/spec/mocks/precise_counts_spec.rb +2 -2
- data/spec/spec/mocks/record_messages_spec.rb +2 -2
- data/spec/spec/mocks/stub_chain_spec.rb +42 -0
- data/spec/spec/mocks/stub_implementation_spec.rb +31 -0
- data/spec/spec/mocks/stub_spec.rb +147 -103
- data/spec/spec/mocks/stubbed_message_expectations_spec.rb +26 -0
- data/spec/spec/mocks/twice_counts_spec.rb +2 -2
- data/spec/spec/mocks/unstub_spec.rb +127 -0
- data/spec/spec/package/bin_spec_spec.rb +11 -7
- data/spec/spec/rake/spectask_spec.rb +150 -0
- data/spec/spec/runner/class_and_argument_parser_spec.rb +23 -0
- data/spec/spec/runner/command_line_spec.rb +158 -29
- data/spec/spec/runner/configuration_spec.rb +320 -0
- data/spec/spec/runner/drb_command_line_spec.rb +137 -72
- data/spec/spec/runner/empty_file.txt +0 -0
- data/spec/spec/runner/example_group_runner_spec.rb +26 -0
- data/spec/spec/runner/examples.txt +2 -0
- data/spec/spec/runner/failed.txt +3 -0
- data/spec/spec/runner/formatter/base_formatter_spec.rb +30 -0
- data/spec/spec/runner/formatter/base_text_formatter_spec.rb +113 -0
- data/spec/spec/runner/formatter/failing_example_groups_formatter_spec.rb +45 -0
- data/spec/spec/runner/formatter/failing_examples_formatter_spec.rb +17 -12
- data/spec/spec/runner/formatter/html_formatted-1.8.6-jruby.html +377 -0
- data/spec/spec/runner/formatter/html_formatted-1.8.6.html +377 -0
- data/spec/spec/runner/formatter/html_formatted-1.8.7.html +377 -0
- data/spec/spec/runner/formatter/html_formatted-1.9.1.html +377 -0
- data/spec/spec/runner/formatter/html_formatter_spec.rb +112 -52
- data/spec/spec/runner/formatter/nested_text_formatter_spec.rb +329 -0
- data/spec/spec/runner/formatter/profile_formatter_spec.rb +70 -0
- data/spec/spec/runner/formatter/progress_bar_formatter_spec.rb +87 -16
- data/spec/spec/runner/formatter/snippet_extractor_spec.rb +14 -7
- data/spec/spec/runner/formatter/specdoc_formatter_spec.rb +153 -50
- data/spec/spec/runner/formatter/text_mate_formatted-1.8.6-jruby.html +371 -0
- data/spec/spec/runner/formatter/text_mate_formatted-1.8.6.html +371 -0
- data/spec/spec/runner/formatter/text_mate_formatted-1.8.7.html +371 -0
- data/spec/spec/runner/formatter/text_mate_formatted-1.9.1.html +371 -0
- data/spec/spec/runner/formatter/text_mate_formatter_spec.rb +106 -0
- data/spec/spec/runner/heckle_runner_spec.rb +32 -17
- data/spec/spec/runner/heckler_spec.rb +17 -11
- data/spec/spec/runner/line_number_query/line_number_query_fixture.rb +70 -0
- data/spec/spec/runner/line_number_query_spec.rb +129 -0
- data/spec/spec/runner/noisy_backtrace_tweaker_spec.rb +27 -21
- data/spec/spec/runner/option_parser_spec.rb +367 -164
- data/spec/spec/runner/options_spec.rb +506 -94
- data/spec/spec/runner/output_one_time_fixture.rb +7 -0
- data/spec/spec/runner/output_one_time_fixture_runner.rb +7 -0
- data/spec/spec/runner/output_one_time_spec.rb +15 -0
- data/spec/spec/runner/quiet_backtrace_tweaker_spec.rb +94 -27
- data/spec/spec/runner/reporter_spec.rb +212 -121
- 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 +1 -0
- data/spec/spec/runner/resources/custom_example_group_runner.rb +14 -0
- data/spec/spec/runner/resources/utf8_encoded.rb +8 -0
- data/spec/spec/runner/spec.opts +2 -0
- data/spec/spec/runner/spec_drb.opts +2 -0
- data/spec/spec/runner/spec_spaced.opts +2 -0
- data/spec/spec/runner_spec.rb +13 -0
- data/spec/spec.opts +6 -0
- data/spec/spec_helper.rb +87 -45
- data/spec/support/macros.rb +29 -0
- data/spec/{spec → support}/spec_classes.rb +26 -4
- metadata +461 -141
- data/CHANGES +0 -748
- data/EXAMPLES.rd +0 -108
- data/README +0 -70
- data/UPGRADE +0 -31
- data/bin/spec_translator +0 -8
- data/examples/auto_spec_description_example.rb +0 -19
- data/examples/before_and_after_example.rb +0 -39
- data/examples/behave_as_example.rb +0 -45
- data/examples/dynamic_spec.rb +0 -9
- data/examples/helper_method_example.rb +0 -11
- data/examples/legacy_spec.rb +0 -10
- data/examples/not_yet_implemented_spec.rb +0 -12
- data/examples/priority.txt +0 -1
- data/examples/spec_helper.rb +0 -1
- data/examples/test_case_adapter_example.rb +0 -26
- data/examples/test_case_spec.rb +0 -65
- data/lib/spec/dsl/behaviour.rb +0 -204
- data/lib/spec/dsl/behaviour_callbacks.rb +0 -77
- data/lib/spec/dsl/behaviour_eval.rb +0 -177
- data/lib/spec/dsl/behaviour_factory.rb +0 -42
- data/lib/spec/dsl/composite_proc_builder.rb +0 -28
- data/lib/spec/dsl/configuration.rb +0 -119
- data/lib/spec/dsl/description.rb +0 -46
- data/lib/spec/dsl/example.rb +0 -127
- data/lib/spec/dsl/example_matcher.rb +0 -28
- data/lib/spec/dsl/example_should_raise_handler.rb +0 -74
- data/lib/spec/expectations/differs/default.rb +0 -61
- data/lib/spec/expectations/extensions/object.rb +0 -66
- data/lib/spec/expectations/extensions/string_and_symbol.rb +0 -17
- data/lib/spec/extensions/object.rb +0 -6
- data/lib/spec/extensions.rb +0 -1
- data/lib/spec/matchers/raise_error.rb +0 -100
- data/lib/spec/mocks/argument_constraint_matchers.rb +0 -12
- data/lib/spec/mocks/spec_methods.rb +0 -30
- data/lib/spec/runner/behaviour_runner.rb +0 -102
- data/lib/spec/runner/extensions/object.rb +0 -32
- data/lib/spec/runner/formatter/failing_behaviours_formatter.rb +0 -25
- data/lib/spec/runner/formatter/rdoc_formatter.rb +0 -24
- data/lib/spec/runner/formatter.rb +0 -9
- data/lib/spec/runner/spec_parser.rb +0 -50
- data/lib/spec/test_case_adapter.rb +0 -10
- data/lib/spec/translator.rb +0 -106
- data/plugins/mock_frameworks/flexmock.rb +0 -27
- data/plugins/mock_frameworks/rspec.rb +0 -18
- data/spec/spec/dsl/behaviour_factory_spec.rb +0 -30
- data/spec/spec/dsl/behaviour_spec.rb +0 -604
- data/spec/spec/dsl/composite_proc_builder_spec.rb +0 -57
- data/spec/spec/dsl/configuration_spec.rb +0 -50
- data/spec/spec/dsl/description_spec.rb +0 -81
- data/spec/spec/dsl/example_class_spec.rb +0 -24
- data/spec/spec/dsl/example_instance_spec.rb +0 -162
- data/spec/spec/dsl/example_should_raise_spec.rb +0 -137
- data/spec/spec/dsl/predicate_matcher_spec.rb +0 -21
- data/spec/spec/dsl/shared_behaviour_spec.rb +0 -208
- data/spec/spec/matchers/handler_spec.rb +0 -88
- data/spec/spec/matchers/matcher_methods_spec.rb +0 -78
- data/spec/spec/matchers/raise_error_spec.rb +0 -147
- data/spec/spec/mocks/failing_mock_argument_constraints_spec.rb +0 -73
- data/spec/spec/mocks/passing_mock_argument_constraints_spec.rb +0 -92
- data/spec/spec/runner/behaviour_runner_spec.rb +0 -118
- data/spec/spec/runner/context_matching_spec.rb +0 -27
- data/spec/spec/runner/execution_context_spec.rb +0 -31
- data/spec/spec/runner/extensions/kernel_spec.rb +0 -36
- data/spec/spec/runner/formatter/failing_behaviours_formatter_spec.rb +0 -27
- data/spec/spec/runner/formatter/progress_bar_formatter_dry_run_spec.rb +0 -21
- data/spec/spec/runner/formatter/progress_bar_formatter_failure_dump_spec.rb +0 -36
- data/spec/spec/runner/formatter/rdoc_formatter_dry_run_spec.rb +0 -19
- data/spec/spec/runner/formatter/rdoc_formatter_spec.rb +0 -46
- data/spec/spec/runner/formatter/specdoc_formatter_dry_run_spec.rb +0 -21
- data/spec/spec/runner/object_ext_spec.rb +0 -11
- data/spec/spec/runner/spec_matcher_spec.rb +0 -102
- data/spec/spec/runner/spec_parser_spec.rb +0 -93
- data/spec/spec/translator_spec.rb +0 -216
- /data/examples/{custom_expectation_matchers.rb → passing/custom_matchers.rb} +0 -0
|
@@ -1,10 +1,29 @@
|
|
|
1
1
|
module Spec
|
|
2
2
|
module Runner
|
|
3
3
|
module Formatter
|
|
4
|
-
#
|
|
4
|
+
# Formatter base-class, which implements all required methods as no-ops, with the exception
|
|
5
5
|
class BaseFormatter
|
|
6
|
-
|
|
7
|
-
|
|
6
|
+
# Formatters are initialized with <tt>options</tt> and <tt>output</tt>
|
|
7
|
+
# arguments. RSpec's built-in formatters already expect this, and any
|
|
8
|
+
# custom formatters should as well.
|
|
9
|
+
#
|
|
10
|
+
# ==== Parameters
|
|
11
|
+
# options::
|
|
12
|
+
# A struct containing boolean values for colour, autospec,
|
|
13
|
+
# and dry_run
|
|
14
|
+
# output::
|
|
15
|
+
# Used by RSpec's built-in formatters to determine where to
|
|
16
|
+
# write the output. Default is <tt>STDOUT</tt>, otherwise a
|
|
17
|
+
# filename is expected.
|
|
18
|
+
#
|
|
19
|
+
# === Example
|
|
20
|
+
# If you invoke the <tt>spec</tt> command with:
|
|
21
|
+
#
|
|
22
|
+
# --format progress:progress_report.txt
|
|
23
|
+
#
|
|
24
|
+
# ... the value of <tt>output</tt> will be progress_report.txt. If you
|
|
25
|
+
# don't identify an output destination, the default is STDOUT.
|
|
26
|
+
def initialize(options, output)
|
|
8
27
|
end
|
|
9
28
|
|
|
10
29
|
# This method is invoked before any examples are run, right after
|
|
@@ -12,42 +31,77 @@ module Spec
|
|
|
12
31
|
# formatters that need to provide progress on feedback (graphical ones)
|
|
13
32
|
#
|
|
14
33
|
# This method will only be invoked once, and the next one to be invoked
|
|
15
|
-
# is #
|
|
34
|
+
# is #example_group_started
|
|
35
|
+
#
|
|
36
|
+
# ==== Parameters
|
|
37
|
+
# example_count:: the total number of examples to be run
|
|
16
38
|
def start(example_count)
|
|
17
39
|
end
|
|
18
40
|
|
|
19
|
-
# This method is invoked at the beginning of the execution of each
|
|
20
|
-
#
|
|
21
|
-
#
|
|
41
|
+
# This method is invoked at the beginning of the execution of each
|
|
42
|
+
# example_group. The next method to be invoked after this is
|
|
43
|
+
# #example_started
|
|
22
44
|
#
|
|
23
|
-
#
|
|
24
|
-
|
|
45
|
+
# ==== Parameters
|
|
46
|
+
# example_group_proxy:: instance of Spec::Example::ExampleGroupProxy
|
|
47
|
+
def example_group_started(example_group_proxy)
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
# Deprecated - use example_group_started instead
|
|
51
|
+
def add_example_group(example_group_proxy)
|
|
52
|
+
Spec.deprecate("BaseFormatter#add_example_group", "BaseFormatter#example_group_started")
|
|
53
|
+
example_group_started(example_group_proxy)
|
|
25
54
|
end
|
|
26
55
|
|
|
27
|
-
# This method is invoked when an example starts.
|
|
28
|
-
#
|
|
29
|
-
|
|
56
|
+
# This method is invoked when an +example+ starts. The next method to be
|
|
57
|
+
# invoked after this is #example_passed, #example_failed, or
|
|
58
|
+
# #example_pending
|
|
59
|
+
#
|
|
60
|
+
# ==== Parameters
|
|
61
|
+
# example_proxy:: instance of Spec::Example::ExampleProxy
|
|
62
|
+
def example_started(example_proxy)
|
|
30
63
|
end
|
|
31
64
|
|
|
32
|
-
# This method is invoked when an example passes.
|
|
33
|
-
#
|
|
34
|
-
|
|
65
|
+
# This method is invoked when an +example+ passes.
|
|
66
|
+
# +example_proxy+ is the same instance of Spec::Example::ExampleProxy
|
|
67
|
+
# that was passed to example_started
|
|
68
|
+
#
|
|
69
|
+
# ==== Parameters
|
|
70
|
+
# example_proxy:: instance of Spec::Example::ExampleProxy
|
|
71
|
+
def example_passed(example_proxy)
|
|
35
72
|
end
|
|
36
73
|
|
|
37
|
-
# This method is invoked when an example fails, i.e. an exception occurred
|
|
38
|
-
# inside it (such as a failed should or other exception).
|
|
39
|
-
#
|
|
40
|
-
#
|
|
41
|
-
|
|
74
|
+
# This method is invoked when an +example+ fails, i.e. an exception occurred
|
|
75
|
+
# inside it (such as a failed should or other exception).
|
|
76
|
+
#
|
|
77
|
+
# ==== Parameters
|
|
78
|
+
# example_proxy::
|
|
79
|
+
# The same instance of Spec::Example::ExampleProxy that was passed
|
|
80
|
+
# to <tt>example_started</tt>
|
|
81
|
+
#
|
|
82
|
+
# counter:: the sequential number of this failure
|
|
83
|
+
#
|
|
84
|
+
# failure:: instance of Spec::Runner::Reporter::Failure
|
|
85
|
+
def example_failed(example_proxy, counter, failure)
|
|
42
86
|
end
|
|
43
87
|
|
|
44
|
-
# This method is invoked when an example is not yet implemented (i.e. has not
|
|
45
|
-
#
|
|
46
|
-
|
|
88
|
+
# This method is invoked when an example is not yet implemented (i.e. has not
|
|
89
|
+
# been provided a block), or when an ExamplePendingError is raised.
|
|
90
|
+
# +message+ is the message from the ExamplePendingError, if it exists, or the
|
|
91
|
+
# default value of "Not Yet Implemented". +deprecated_pending_location+ is
|
|
92
|
+
# deprecated - use example_proxy.location instead
|
|
93
|
+
#
|
|
94
|
+
# ==== Parameters
|
|
95
|
+
# example_proxy:: instance of Spec::Example::ExampleProxy
|
|
96
|
+
# message::
|
|
97
|
+
# the message passed to the pending message, or an internal
|
|
98
|
+
# default
|
|
99
|
+
#
|
|
100
|
+
def example_pending(example_proxy, message, deprecated_pending_location=nil)
|
|
47
101
|
end
|
|
48
102
|
|
|
49
103
|
# This method is invoked after all of the examples have executed. The next method
|
|
50
|
-
# to be invoked after this one is #dump_failure (once for each failed example)
|
|
104
|
+
# to be invoked after this one is #dump_failure (once for each failed example)
|
|
51
105
|
def start_dump
|
|
52
106
|
end
|
|
53
107
|
|
|
@@ -55,13 +109,30 @@ module Spec
|
|
|
55
109
|
# This method is invoked for each failed example after all examples have run. +counter+ is the sequence number
|
|
56
110
|
# of the associated example. +failure+ is a Failure object, which contains detailed
|
|
57
111
|
# information about the failure.
|
|
112
|
+
#
|
|
113
|
+
# ==== Parameters
|
|
114
|
+
# counter:: the sequential number of this failure
|
|
115
|
+
# failure:: instance of Spec::Runner::Reporter::Failure
|
|
58
116
|
def dump_failure(counter, failure)
|
|
59
117
|
end
|
|
60
118
|
|
|
61
|
-
# This method is invoked
|
|
62
|
-
|
|
119
|
+
# This method is invoked after the dumping of examples and failures.
|
|
120
|
+
#
|
|
121
|
+
# ==== Parameters
|
|
122
|
+
# duration:: the total time for the entire run
|
|
123
|
+
# example_count:: the number of examples run
|
|
124
|
+
# failure_count:: the number of examples that failed
|
|
125
|
+
# pending_count:: the number of examples that are pending
|
|
126
|
+
def dump_summary(duration, example_count, failure_count, pending_count)
|
|
127
|
+
end
|
|
128
|
+
|
|
129
|
+
# This gets invoked after the summary
|
|
130
|
+
def dump_pending
|
|
63
131
|
end
|
|
64
132
|
|
|
133
|
+
# This method is invoked at the very end. Allows the formatter to clean up, like closing open streams.
|
|
134
|
+
def close
|
|
135
|
+
end
|
|
65
136
|
end
|
|
66
137
|
end
|
|
67
138
|
end
|
|
@@ -1,3 +1,6 @@
|
|
|
1
|
+
require 'spec/runner/formatter/base_formatter'
|
|
2
|
+
require 'fileutils'
|
|
3
|
+
|
|
1
4
|
module Spec
|
|
2
5
|
module Runner
|
|
3
6
|
module Formatter
|
|
@@ -5,58 +8,58 @@ module Spec
|
|
|
5
8
|
# non-text based ones too - just ignore the +output+ constructor
|
|
6
9
|
# argument.
|
|
7
10
|
class BaseTextFormatter < BaseFormatter
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
# Creates a new instance that will write to +where+. If +where+ is a
|
|
11
|
+
attr_reader :output, :example_group
|
|
12
|
+
# Creates a new instance that will write to +output+. If +output+ is a
|
|
11
13
|
# String, output will be written to the File with that name, otherwise
|
|
12
|
-
# +
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
@output =
|
|
19
|
-
def @output.flush
|
|
20
|
-
STDOUT.flush
|
|
21
|
-
end
|
|
14
|
+
# +output+ is exected to be an IO (or an object that responds to #puts
|
|
15
|
+
# and #write).
|
|
16
|
+
def initialize(options, output)
|
|
17
|
+
@options = options
|
|
18
|
+
if String === output
|
|
19
|
+
FileUtils.mkdir_p(File.dirname(output))
|
|
20
|
+
@output = File.open(output, 'w')
|
|
22
21
|
else
|
|
23
|
-
@output =
|
|
22
|
+
@output = output
|
|
24
23
|
end
|
|
25
|
-
@
|
|
26
|
-
@dry_run = false
|
|
27
|
-
@snippet_extractor = SnippetExtractor.new
|
|
24
|
+
@pending_examples = []
|
|
28
25
|
end
|
|
29
|
-
|
|
30
|
-
def colour=(colour)
|
|
31
|
-
@colour = colour
|
|
32
|
-
begin ; require 'Win32/Console/ANSI' if @colour && PLATFORM =~ /win32/ ; rescue LoadError ; raise "You must gem install win32console to use colour on Windows" ; end
|
|
33
|
-
end
|
|
34
26
|
|
|
27
|
+
def example_group_started(example_group_proxy)
|
|
28
|
+
@example_group = example_group_proxy
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
def example_pending(example, message, deprecated_pending_location=nil)
|
|
32
|
+
@pending_examples << ["#{@example_group.description} #{example.description}", message, example.location]
|
|
33
|
+
end
|
|
34
|
+
|
|
35
35
|
def dump_failure(counter, failure)
|
|
36
36
|
@output.puts
|
|
37
37
|
@output.puts "#{counter.to_s})"
|
|
38
|
-
|
|
39
|
-
@output.puts red(failure.header)
|
|
40
|
-
@output.puts red(failure.exception.message)
|
|
41
|
-
else
|
|
42
|
-
@output.puts magenta(failure.header)
|
|
43
|
-
@output.puts magenta(failure.exception.message)
|
|
44
|
-
end
|
|
38
|
+
@output.puts colorize_failure("#{failure.header}\n#{failure.exception.message}", failure)
|
|
45
39
|
@output.puts format_backtrace(failure.exception.backtrace)
|
|
46
40
|
@output.flush
|
|
47
41
|
end
|
|
48
|
-
|
|
49
|
-
def
|
|
50
|
-
|
|
42
|
+
|
|
43
|
+
def colorize_failure(message, failure)
|
|
44
|
+
failure.pending_fixed? ? blue(message) : red(message)
|
|
45
|
+
end
|
|
46
|
+
|
|
47
|
+
def colourise(message, failure)
|
|
48
|
+
Spec::deprecate("BaseTextFormatter#colourise", "colorize_failure")
|
|
49
|
+
colorize_failure(message, failure)
|
|
50
|
+
end
|
|
51
|
+
|
|
52
|
+
def dump_summary(duration, example_count, failure_count, pending_count)
|
|
53
|
+
return if dry_run?
|
|
51
54
|
@output.puts
|
|
52
55
|
@output.puts "Finished in #{duration} seconds"
|
|
53
56
|
@output.puts
|
|
54
57
|
|
|
55
58
|
summary = "#{example_count} example#{'s' unless example_count == 1}, #{failure_count} failure#{'s' unless failure_count == 1}"
|
|
56
|
-
summary << ", #{
|
|
59
|
+
summary << ", #{pending_count} pending" if pending_count > 0
|
|
57
60
|
|
|
58
61
|
if failure_count == 0
|
|
59
|
-
if
|
|
62
|
+
if pending_count > 0
|
|
60
63
|
@output.puts yellow(summary)
|
|
61
64
|
else
|
|
62
65
|
@output.puts green(summary)
|
|
@@ -67,35 +70,72 @@ module Spec
|
|
|
67
70
|
@output.flush
|
|
68
71
|
end
|
|
69
72
|
|
|
73
|
+
def dump_pending
|
|
74
|
+
unless @pending_examples.empty?
|
|
75
|
+
@output.puts
|
|
76
|
+
@output.puts "Pending:"
|
|
77
|
+
@pending_examples.each do |pending_example|
|
|
78
|
+
@output.puts "\n#{pending_example[0]} (#{pending_example[1]})"
|
|
79
|
+
@output.puts "#{pending_example[2]}\n"
|
|
80
|
+
end
|
|
81
|
+
end
|
|
82
|
+
@output.flush
|
|
83
|
+
end
|
|
84
|
+
|
|
85
|
+
def close
|
|
86
|
+
@output.close if (IO === @output) & (@output != $stdout)
|
|
87
|
+
end
|
|
88
|
+
|
|
70
89
|
def format_backtrace(backtrace)
|
|
71
90
|
return "" if backtrace.nil?
|
|
72
91
|
backtrace.map { |line| backtrace_line(line) }.join("\n")
|
|
73
92
|
end
|
|
74
93
|
|
|
75
94
|
protected
|
|
76
|
-
|
|
95
|
+
|
|
96
|
+
def colour?
|
|
97
|
+
!!@options.colour
|
|
98
|
+
end
|
|
99
|
+
|
|
100
|
+
def dry_run?
|
|
101
|
+
!!@options.dry_run
|
|
102
|
+
end
|
|
103
|
+
|
|
104
|
+
def autospec?
|
|
105
|
+
!!@options.autospec || ENV.has_key?("AUTOTEST")
|
|
106
|
+
end
|
|
107
|
+
|
|
77
108
|
def backtrace_line(line)
|
|
78
109
|
line.sub(/\A([^:]+:\d+)$/, '\\1:')
|
|
79
110
|
end
|
|
80
111
|
|
|
81
112
|
def colour(text, colour_code)
|
|
82
|
-
return text
|
|
113
|
+
return text if output_to_file?
|
|
114
|
+
return text unless ENV['RSPEC_COLOR'] || (colour? & (autospec? || output_to_tty?))
|
|
83
115
|
"#{colour_code}#{text}\e[0m"
|
|
84
116
|
end
|
|
85
117
|
|
|
118
|
+
def output_to_file?
|
|
119
|
+
File === @output
|
|
120
|
+
end
|
|
121
|
+
|
|
86
122
|
def output_to_tty?
|
|
87
123
|
begin
|
|
88
|
-
@output
|
|
124
|
+
@output.tty?
|
|
89
125
|
rescue NoMethodError
|
|
90
126
|
false
|
|
91
127
|
end
|
|
92
128
|
end
|
|
93
129
|
|
|
94
|
-
def red(text); colour(text, "\e[31m"); end
|
|
95
130
|
def green(text); colour(text, "\e[32m"); end
|
|
96
|
-
def
|
|
131
|
+
def red(text); colour(text, "\e[31m"); end
|
|
97
132
|
def yellow(text); colour(text, "\e[33m"); end
|
|
133
|
+
def blue(text); colour(text, "\e[34m"); end
|
|
98
134
|
|
|
135
|
+
def magenta(text)
|
|
136
|
+
Spec::deprecate("BaseTextFormatter#magenta")
|
|
137
|
+
red(text)
|
|
138
|
+
end
|
|
99
139
|
end
|
|
100
140
|
end
|
|
101
141
|
end
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
require 'spec/runner/formatter/base_text_formatter'
|
|
2
|
+
|
|
3
|
+
module Spec
|
|
4
|
+
module Runner
|
|
5
|
+
module Formatter
|
|
6
|
+
class FailingExampleGroupsFormatter < BaseTextFormatter
|
|
7
|
+
def example_failed(example, counter, failure)
|
|
8
|
+
if @example_group
|
|
9
|
+
@output.puts @example_group.description.gsub(/ \(druby.*\)/,"")
|
|
10
|
+
|
|
11
|
+
@output.flush
|
|
12
|
+
@example_group = nil
|
|
13
|
+
end
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
def dump_failure(counter, failure)
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
def dump_summary(duration, example_count, failure_count, pending_count)
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
end
|
|
23
|
+
end
|
|
24
|
+
end
|
|
25
|
+
end
|
|
@@ -1,22 +1,20 @@
|
|
|
1
|
+
require 'spec/runner/formatter/base_text_formatter'
|
|
2
|
+
|
|
1
3
|
module Spec
|
|
2
4
|
module Runner
|
|
3
5
|
module Formatter
|
|
4
6
|
class FailingExamplesFormatter < BaseTextFormatter
|
|
5
|
-
def
|
|
6
|
-
@
|
|
7
|
-
end
|
|
8
|
-
|
|
9
|
-
def example_failed(name, counter, failure)
|
|
10
|
-
@output.puts "#{@behaviour_name} #{name}"
|
|
7
|
+
def example_failed(example, counter, failure)
|
|
8
|
+
@output.puts "#{example_group.description} #{example.description}"
|
|
11
9
|
@output.flush
|
|
12
10
|
end
|
|
13
11
|
|
|
14
12
|
def dump_failure(counter, failure)
|
|
15
13
|
end
|
|
16
14
|
|
|
17
|
-
def dump_summary(duration, example_count, failure_count,
|
|
15
|
+
def dump_summary(duration, example_count, failure_count, pending_count)
|
|
18
16
|
end
|
|
19
17
|
end
|
|
20
18
|
end
|
|
21
19
|
end
|
|
22
|
-
end
|
|
20
|
+
end
|