paynow_sdk 0.1.0
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.
- checksums.yaml +7 -0
- data/.gitignore +8 -0
- data/.travis.yml +6 -0
- data/Gemfile +8 -0
- data/Gemfile.lock +30 -0
- data/README.md +36 -0
- data/Rakefile +10 -0
- data/bin/console +14 -0
- data/bin/setup +8 -0
- data/lib/paynow_sdk.rb +269 -0
- data/lib/paynow_sdk/version.rb +3 -0
- data/paynow_sdk.gemspec +27 -0
- data/vendor/cache/ansi-1.5.0.gem +0 -0
- data/vendor/cache/builder-3.2.4.gem +0 -0
- data/vendor/cache/minitest-5.14.1.gem +0 -0
- data/vendor/cache/minitest-reporters-1.4.2.gem +0 -0
- data/vendor/cache/rake-12.3.3.gem +0 -0
- data/vendor/cache/ruby-progressbar-1.10.1.gem +0 -0
- data/vendor/cache/ruby/2.7.0/bin/rake +27 -0
- data/vendor/cache/ruby/2.7.0/cache/ansi-1.5.0.gem +0 -0
- data/vendor/cache/ruby/2.7.0/cache/builder-3.2.4.gem +0 -0
- data/vendor/cache/ruby/2.7.0/cache/minitest-5.14.1.gem +0 -0
- data/vendor/cache/ruby/2.7.0/cache/minitest-reporters-1.4.2.gem +0 -0
- data/vendor/cache/ruby/2.7.0/cache/rake-12.3.3.gem +0 -0
- data/vendor/cache/ruby/2.7.0/cache/ruby-progressbar-1.10.1.gem +0 -0
- data/vendor/cache/ruby/2.7.0/gems/ansi-1.5.0/.index +77 -0
- data/vendor/cache/ruby/2.7.0/gems/ansi-1.5.0/.yardopts +8 -0
- data/vendor/cache/ruby/2.7.0/gems/ansi-1.5.0/DEMO.md +451 -0
- data/vendor/cache/ruby/2.7.0/gems/ansi-1.5.0/HISTORY.md +217 -0
- data/vendor/cache/ruby/2.7.0/gems/ansi-1.5.0/LICENSE.txt +23 -0
- data/vendor/cache/ruby/2.7.0/gems/ansi-1.5.0/NOTICE.md +170 -0
- data/vendor/cache/ruby/2.7.0/gems/ansi-1.5.0/README.md +91 -0
- data/vendor/cache/ruby/2.7.0/gems/ansi-1.5.0/demo/01_ansicode.md +65 -0
- data/vendor/cache/ruby/2.7.0/gems/ansi-1.5.0/demo/02_core.md +11 -0
- data/vendor/cache/ruby/2.7.0/gems/ansi-1.5.0/demo/03_logger.md +30 -0
- data/vendor/cache/ruby/2.7.0/gems/ansi-1.5.0/demo/04_progressbar.md +62 -0
- data/vendor/cache/ruby/2.7.0/gems/ansi-1.5.0/demo/05_mixin.md +37 -0
- data/vendor/cache/ruby/2.7.0/gems/ansi-1.5.0/demo/06_string.md +56 -0
- data/vendor/cache/ruby/2.7.0/gems/ansi-1.5.0/demo/07_columns.md +89 -0
- data/vendor/cache/ruby/2.7.0/gems/ansi-1.5.0/demo/08_table.md +28 -0
- data/vendor/cache/ruby/2.7.0/gems/ansi-1.5.0/demo/09_diff.md +47 -0
- data/vendor/cache/ruby/2.7.0/gems/ansi-1.5.0/demo/10_bbcode.md +24 -0
- data/vendor/cache/ruby/2.7.0/gems/ansi-1.5.0/demo/11_terminal.md +8 -0
- data/vendor/cache/ruby/2.7.0/gems/ansi-1.5.0/demo/applique/ae.rb +1 -0
- data/vendor/cache/ruby/2.7.0/gems/ansi-1.5.0/demo/applique/output.rb +5 -0
- data/vendor/cache/ruby/2.7.0/gems/ansi-1.5.0/lib/ansi.rb +22 -0
- data/vendor/cache/ruby/2.7.0/gems/ansi-1.5.0/lib/ansi.yml +77 -0
- data/vendor/cache/ruby/2.7.0/gems/ansi-1.5.0/lib/ansi/bbcode.rb +334 -0
- data/vendor/cache/ruby/2.7.0/gems/ansi-1.5.0/lib/ansi/chain.rb +50 -0
- data/vendor/cache/ruby/2.7.0/gems/ansi-1.5.0/lib/ansi/chart.rb +100 -0
- data/vendor/cache/ruby/2.7.0/gems/ansi-1.5.0/lib/ansi/code.rb +349 -0
- data/vendor/cache/ruby/2.7.0/gems/ansi-1.5.0/lib/ansi/columns.rb +197 -0
- data/vendor/cache/ruby/2.7.0/gems/ansi-1.5.0/lib/ansi/constants.rb +25 -0
- data/vendor/cache/ruby/2.7.0/gems/ansi-1.5.0/lib/ansi/core.rb +30 -0
- data/vendor/cache/ruby/2.7.0/gems/ansi-1.5.0/lib/ansi/diff.rb +215 -0
- data/vendor/cache/ruby/2.7.0/gems/ansi-1.5.0/lib/ansi/hexdump.rb +122 -0
- data/vendor/cache/ruby/2.7.0/gems/ansi-1.5.0/lib/ansi/logger.rb +211 -0
- data/vendor/cache/ruby/2.7.0/gems/ansi-1.5.0/lib/ansi/mixin.rb +121 -0
- data/vendor/cache/ruby/2.7.0/gems/ansi-1.5.0/lib/ansi/progressbar.rb +292 -0
- data/vendor/cache/ruby/2.7.0/gems/ansi-1.5.0/lib/ansi/string.rb +254 -0
- data/vendor/cache/ruby/2.7.0/gems/ansi-1.5.0/lib/ansi/table.rb +179 -0
- data/vendor/cache/ruby/2.7.0/gems/ansi-1.5.0/lib/ansi/terminal.rb +44 -0
- data/vendor/cache/ruby/2.7.0/gems/ansi-1.5.0/lib/ansi/terminal/curses.rb +26 -0
- data/vendor/cache/ruby/2.7.0/gems/ansi-1.5.0/lib/ansi/terminal/stty.rb +62 -0
- data/vendor/cache/ruby/2.7.0/gems/ansi-1.5.0/lib/ansi/terminal/termios.rb +68 -0
- data/vendor/cache/ruby/2.7.0/gems/ansi-1.5.0/lib/ansi/terminal/win32.rb +107 -0
- data/vendor/cache/ruby/2.7.0/gems/ansi-1.5.0/lib/ansi/version.rb +15 -0
- data/vendor/cache/ruby/2.7.0/gems/ansi-1.5.0/test/case_ansicode.rb +43 -0
- data/vendor/cache/ruby/2.7.0/gems/ansi-1.5.0/test/case_bbcode.rb +35 -0
- data/vendor/cache/ruby/2.7.0/gems/ansi-1.5.0/test/case_mixin.rb +35 -0
- data/vendor/cache/ruby/2.7.0/gems/ansi-1.5.0/test/case_progressbar.rb +21 -0
- data/vendor/cache/ruby/2.7.0/gems/ansi-1.5.0/test/test_helper.rb +3 -0
- data/vendor/cache/ruby/2.7.0/gems/builder-3.2.4/CHANGES +119 -0
- data/vendor/cache/ruby/2.7.0/gems/builder-3.2.4/MIT-LICENSE +20 -0
- data/vendor/cache/ruby/2.7.0/gems/builder-3.2.4/README.md +258 -0
- data/vendor/cache/ruby/2.7.0/gems/builder-3.2.4/Rakefile +194 -0
- data/vendor/cache/ruby/2.7.0/gems/builder-3.2.4/builder.blurb +27 -0
- data/vendor/cache/ruby/2.7.0/gems/builder-3.2.4/builder.gemspec +45 -0
- data/vendor/cache/ruby/2.7.0/gems/builder-3.2.4/doc/jamis.rb +592 -0
- data/vendor/cache/ruby/2.7.0/gems/builder-3.2.4/doc/releases/builder-1.2.4.rdoc +31 -0
- data/vendor/cache/ruby/2.7.0/gems/builder-3.2.4/doc/releases/builder-2.0.0.rdoc +46 -0
- data/vendor/cache/ruby/2.7.0/gems/builder-3.2.4/doc/releases/builder-2.1.1.rdoc +58 -0
- data/vendor/cache/ruby/2.7.0/gems/builder-3.2.4/lib/blankslate.rb +138 -0
- data/vendor/cache/ruby/2.7.0/gems/builder-3.2.4/lib/builder.rb +14 -0
- data/vendor/cache/ruby/2.7.0/gems/builder-3.2.4/lib/builder/blankslate.rb +24 -0
- data/vendor/cache/ruby/2.7.0/gems/builder-3.2.4/lib/builder/version.rb +9 -0
- data/vendor/cache/ruby/2.7.0/gems/builder-3.2.4/lib/builder/xchar.rb +198 -0
- data/vendor/cache/ruby/2.7.0/gems/builder-3.2.4/lib/builder/xmlbase.rb +200 -0
- data/vendor/cache/ruby/2.7.0/gems/builder-3.2.4/lib/builder/xmlevents.rb +64 -0
- data/vendor/cache/ruby/2.7.0/gems/builder-3.2.4/lib/builder/xmlmarkup.rb +345 -0
- data/vendor/cache/ruby/2.7.0/gems/builder-3.2.4/rakelib/publish.rake +21 -0
- data/vendor/cache/ruby/2.7.0/gems/builder-3.2.4/rakelib/tags.rake +63 -0
- data/vendor/cache/ruby/2.7.0/gems/builder-3.2.4/rakelib/testing.rake +8 -0
- data/vendor/cache/ruby/2.7.0/gems/builder-3.2.4/test/helper.rb +13 -0
- data/vendor/cache/ruby/2.7.0/gems/builder-3.2.4/test/performance.rb +42 -0
- data/vendor/cache/ruby/2.7.0/gems/builder-3.2.4/test/preload.rb +40 -0
- data/vendor/cache/ruby/2.7.0/gems/builder-3.2.4/test/test_blankslate.rb +208 -0
- data/vendor/cache/ruby/2.7.0/gems/builder-3.2.4/test/test_eventbuilder.rb +151 -0
- data/vendor/cache/ruby/2.7.0/gems/builder-3.2.4/test/test_markupbuilder.rb +617 -0
- data/vendor/cache/ruby/2.7.0/gems/builder-3.2.4/test/test_method_caching.rb +63 -0
- data/vendor/cache/ruby/2.7.0/gems/builder-3.2.4/test/test_namecollision.rb +40 -0
- data/vendor/cache/ruby/2.7.0/gems/builder-3.2.4/test/test_xchar.rb +85 -0
- data/vendor/cache/ruby/2.7.0/gems/minitest-5.14.1/.autotest +34 -0
- data/vendor/cache/ruby/2.7.0/gems/minitest-5.14.1/History.rdoc +1392 -0
- data/vendor/cache/ruby/2.7.0/gems/minitest-5.14.1/Manifest.txt +27 -0
- data/vendor/cache/ruby/2.7.0/gems/minitest-5.14.1/README.rdoc +764 -0
- data/vendor/cache/ruby/2.7.0/gems/minitest-5.14.1/Rakefile +74 -0
- data/vendor/cache/ruby/2.7.0/gems/minitest-5.14.1/design_rationale.rb +52 -0
- data/vendor/cache/ruby/2.7.0/gems/minitest-5.14.1/lib/hoe/minitest.rb +32 -0
- data/vendor/cache/ruby/2.7.0/gems/minitest-5.14.1/lib/minitest.rb +1056 -0
- data/vendor/cache/ruby/2.7.0/gems/minitest-5.14.1/lib/minitest/assertions.rb +807 -0
- data/vendor/cache/ruby/2.7.0/gems/minitest-5.14.1/lib/minitest/autorun.rb +13 -0
- data/vendor/cache/ruby/2.7.0/gems/minitest-5.14.1/lib/minitest/benchmark.rb +455 -0
- data/vendor/cache/ruby/2.7.0/gems/minitest-5.14.1/lib/minitest/expectations.rb +303 -0
- data/vendor/cache/ruby/2.7.0/gems/minitest-5.14.1/lib/minitest/hell.rb +11 -0
- data/vendor/cache/ruby/2.7.0/gems/minitest-5.14.1/lib/minitest/mock.rb +240 -0
- data/vendor/cache/ruby/2.7.0/gems/minitest-5.14.1/lib/minitest/parallel.rb +70 -0
- data/vendor/cache/ruby/2.7.0/gems/minitest-5.14.1/lib/minitest/pride.rb +4 -0
- data/vendor/cache/ruby/2.7.0/gems/minitest-5.14.1/lib/minitest/pride_plugin.rb +142 -0
- data/vendor/cache/ruby/2.7.0/gems/minitest-5.14.1/lib/minitest/spec.rb +342 -0
- data/vendor/cache/ruby/2.7.0/gems/minitest-5.14.1/lib/minitest/test.rb +220 -0
- data/vendor/cache/ruby/2.7.0/gems/minitest-5.14.1/lib/minitest/unit.rb +45 -0
- data/vendor/cache/ruby/2.7.0/gems/minitest-5.14.1/test/minitest/metametameta.rb +136 -0
- data/vendor/cache/ruby/2.7.0/gems/minitest-5.14.1/test/minitest/test_minitest_assertions.rb +1567 -0
- data/vendor/cache/ruby/2.7.0/gems/minitest-5.14.1/test/minitest/test_minitest_benchmark.rb +137 -0
- data/vendor/cache/ruby/2.7.0/gems/minitest-5.14.1/test/minitest/test_minitest_mock.rb +872 -0
- data/vendor/cache/ruby/2.7.0/gems/minitest-5.14.1/test/minitest/test_minitest_reporter.rb +299 -0
- data/vendor/cache/ruby/2.7.0/gems/minitest-5.14.1/test/minitest/test_minitest_spec.rb +1061 -0
- data/vendor/cache/ruby/2.7.0/gems/minitest-5.14.1/test/minitest/test_minitest_test.rb +1084 -0
- data/vendor/cache/ruby/2.7.0/gems/minitest-reporters-1.4.2/.gitignore +28 -0
- data/vendor/cache/ruby/2.7.0/gems/minitest-reporters-1.4.2/.rubocop.yml +77 -0
- data/vendor/cache/ruby/2.7.0/gems/minitest-reporters-1.4.2/.ruby-gemset +1 -0
- data/vendor/cache/ruby/2.7.0/gems/minitest-reporters-1.4.2/.travis.yml +15 -0
- data/vendor/cache/ruby/2.7.0/gems/minitest-reporters-1.4.2/.yardopts +6 -0
- data/vendor/cache/ruby/2.7.0/gems/minitest-reporters-1.4.2/CHANGELOG.md +120 -0
- data/vendor/cache/ruby/2.7.0/gems/minitest-reporters-1.4.2/Gemfile +2 -0
- data/vendor/cache/ruby/2.7.0/gems/minitest-reporters-1.4.2/LICENSE +20 -0
- data/vendor/cache/ruby/2.7.0/gems/minitest-reporters-1.4.2/README.md +135 -0
- data/vendor/cache/ruby/2.7.0/gems/minitest-reporters-1.4.2/Rakefile +70 -0
- data/vendor/cache/ruby/2.7.0/gems/minitest-reporters-1.4.2/appveyor.yml +22 -0
- data/vendor/cache/ruby/2.7.0/gems/minitest-reporters-1.4.2/assets/default-reporter.png +0 -0
- data/vendor/cache/ruby/2.7.0/gems/minitest-reporters-1.4.2/assets/mean_time_reporter.png +0 -0
- data/vendor/cache/ruby/2.7.0/gems/minitest-reporters-1.4.2/assets/progress-reporter.png +0 -0
- data/vendor/cache/ruby/2.7.0/gems/minitest-reporters-1.4.2/assets/spec-reporter.png +0 -0
- data/vendor/cache/ruby/2.7.0/gems/minitest-reporters-1.4.2/lib/minitest/extensible_backtrace_filter.rb +67 -0
- data/vendor/cache/ruby/2.7.0/gems/minitest-reporters-1.4.2/lib/minitest/minitest_reporter_plugin.rb +82 -0
- data/vendor/cache/ruby/2.7.0/gems/minitest-reporters-1.4.2/lib/minitest/old_activesupport_fix.rb +24 -0
- data/vendor/cache/ruby/2.7.0/gems/minitest-reporters-1.4.2/lib/minitest/relative_position.rb +26 -0
- data/vendor/cache/ruby/2.7.0/gems/minitest-reporters-1.4.2/lib/minitest/reporters.rb +91 -0
- data/vendor/cache/ruby/2.7.0/gems/minitest-reporters-1.4.2/lib/minitest/reporters/ansi.rb +30 -0
- data/vendor/cache/ruby/2.7.0/gems/minitest-reporters-1.4.2/lib/minitest/reporters/base_reporter.rb +136 -0
- data/vendor/cache/ruby/2.7.0/gems/minitest-reporters-1.4.2/lib/minitest/reporters/default_reporter.rb +245 -0
- data/vendor/cache/ruby/2.7.0/gems/minitest-reporters-1.4.2/lib/minitest/reporters/html_reporter.rb +224 -0
- data/vendor/cache/ruby/2.7.0/gems/minitest-reporters-1.4.2/lib/minitest/reporters/junit_reporter.rb +174 -0
- data/vendor/cache/ruby/2.7.0/gems/minitest-reporters-1.4.2/lib/minitest/reporters/mean_time_reporter.rb +388 -0
- data/vendor/cache/ruby/2.7.0/gems/minitest-reporters-1.4.2/lib/minitest/reporters/progress_reporter.rb +104 -0
- data/vendor/cache/ruby/2.7.0/gems/minitest-reporters-1.4.2/lib/minitest/reporters/ruby_mate_reporter.rb +54 -0
- data/vendor/cache/ruby/2.7.0/gems/minitest-reporters-1.4.2/lib/minitest/reporters/rubymine_reporter.rb +116 -0
- data/vendor/cache/ruby/2.7.0/gems/minitest-reporters-1.4.2/lib/minitest/reporters/spec_reporter.rb +61 -0
- data/vendor/cache/ruby/2.7.0/gems/minitest-reporters-1.4.2/lib/minitest/reporters/version.rb +5 -0
- data/vendor/cache/ruby/2.7.0/gems/minitest-reporters-1.4.2/lib/minitest/templates/index.html.erb +85 -0
- data/vendor/cache/ruby/2.7.0/gems/minitest-reporters-1.4.2/minitest-reporters.gemspec +31 -0
- data/vendor/cache/ruby/2.7.0/gems/minitest-reporters-1.4.2/test/fixtures/junit_filename_bug_example_test.rb +41 -0
- data/vendor/cache/ruby/2.7.0/gems/minitest-reporters-1.4.2/test/fixtures/mean_time_test.rb +36 -0
- data/vendor/cache/ruby/2.7.0/gems/minitest-reporters-1.4.2/test/fixtures/progress_detailed_skip_test.rb +8 -0
- data/vendor/cache/ruby/2.7.0/gems/minitest-reporters-1.4.2/test/fixtures/progress_test.rb +8 -0
- data/vendor/cache/ruby/2.7.0/gems/minitest-reporters-1.4.2/test/fixtures/sample_test.rb +15 -0
- data/vendor/cache/ruby/2.7.0/gems/minitest-reporters-1.4.2/test/fixtures/spec_test.rb +18 -0
- data/vendor/cache/ruby/2.7.0/gems/minitest-reporters-1.4.2/test/gallery/bad_test.rb +25 -0
- data/vendor/cache/ruby/2.7.0/gems/minitest-reporters-1.4.2/test/gallery/good_test.rb +14 -0
- data/vendor/cache/ruby/2.7.0/gems/minitest-reporters-1.4.2/test/integration/reporters/junit_reporter_test.rb +12 -0
- data/vendor/cache/ruby/2.7.0/gems/minitest-reporters-1.4.2/test/integration/reporters/mean_time_reporter_test.rb +7 -0
- data/vendor/cache/ruby/2.7.0/gems/minitest-reporters-1.4.2/test/integration/reporters/progress_reporter_test.rb +40 -0
- data/vendor/cache/ruby/2.7.0/gems/minitest-reporters-1.4.2/test/test_helper.rb +22 -0
- data/vendor/cache/ruby/2.7.0/gems/minitest-reporters-1.4.2/test/unit/minitest/extensible_backtrace_filter_test.rb +42 -0
- data/vendor/cache/ruby/2.7.0/gems/minitest-reporters-1.4.2/test/unit/minitest/junit_reporter_test.rb +46 -0
- data/vendor/cache/ruby/2.7.0/gems/minitest-reporters-1.4.2/test/unit/minitest/mean_time_reporter_unit_test.rb +149 -0
- data/vendor/cache/ruby/2.7.0/gems/minitest-reporters-1.4.2/test/unit/minitest/minitest_reporter_plugin_test.rb +14 -0
- data/vendor/cache/ruby/2.7.0/gems/minitest-reporters-1.4.2/test/unit/minitest/reporters_test.rb +65 -0
- data/vendor/cache/ruby/2.7.0/gems/minitest-reporters-1.4.2/test/unit/minitest/spec_reporter_test.rb +62 -0
- data/vendor/cache/ruby/2.7.0/gems/rake-12.3.3/CONTRIBUTING.rdoc +43 -0
- data/vendor/cache/ruby/2.7.0/gems/rake-12.3.3/Gemfile +3 -0
- data/vendor/cache/ruby/2.7.0/gems/rake-12.3.3/History.rdoc +2344 -0
- data/vendor/cache/ruby/2.7.0/gems/rake-12.3.3/MIT-LICENSE +21 -0
- data/vendor/cache/ruby/2.7.0/gems/rake-12.3.3/README.rdoc +156 -0
- data/vendor/cache/ruby/2.7.0/gems/rake-12.3.3/Rakefile +41 -0
- data/vendor/cache/ruby/2.7.0/gems/rake-12.3.3/azure-pipelines.yml +11 -0
- data/vendor/cache/ruby/2.7.0/gems/rake-12.3.3/bin/bundle +105 -0
- data/vendor/cache/ruby/2.7.0/gems/rake-12.3.3/bin/console +7 -0
- data/vendor/cache/ruby/2.7.0/gems/rake-12.3.3/bin/rake +29 -0
- data/vendor/cache/ruby/2.7.0/gems/rake-12.3.3/bin/rdoc +29 -0
- data/vendor/cache/ruby/2.7.0/gems/rake-12.3.3/bin/rubocop +29 -0
- data/vendor/cache/ruby/2.7.0/gems/rake-12.3.3/bin/setup +6 -0
- data/vendor/cache/ruby/2.7.0/gems/rake-12.3.3/doc/command_line_usage.rdoc +158 -0
- data/vendor/cache/ruby/2.7.0/gems/rake-12.3.3/doc/example/Rakefile1 +38 -0
- data/vendor/cache/ruby/2.7.0/gems/rake-12.3.3/doc/example/Rakefile2 +35 -0
- data/vendor/cache/ruby/2.7.0/gems/rake-12.3.3/doc/example/a.c +6 -0
- data/vendor/cache/ruby/2.7.0/gems/rake-12.3.3/doc/example/b.c +6 -0
- data/vendor/cache/ruby/2.7.0/gems/rake-12.3.3/doc/example/main.c +11 -0
- data/vendor/cache/ruby/2.7.0/gems/rake-12.3.3/doc/glossary.rdoc +42 -0
- data/vendor/cache/ruby/2.7.0/gems/rake-12.3.3/doc/jamis.rb +592 -0
- data/vendor/cache/ruby/2.7.0/gems/rake-12.3.3/doc/proto_rake.rdoc +127 -0
- data/vendor/cache/ruby/2.7.0/gems/rake-12.3.3/doc/rake.1 +156 -0
- data/vendor/cache/ruby/2.7.0/gems/rake-12.3.3/doc/rakefile.rdoc +622 -0
- data/vendor/cache/ruby/2.7.0/gems/rake-12.3.3/doc/rational.rdoc +151 -0
- data/vendor/cache/ruby/2.7.0/gems/rake-12.3.3/exe/rake +27 -0
- data/vendor/cache/ruby/2.7.0/gems/rake-12.3.3/lib/rake.rb +71 -0
- data/vendor/cache/ruby/2.7.0/gems/rake-12.3.3/lib/rake/application.rb +824 -0
- data/vendor/cache/ruby/2.7.0/gems/rake-12.3.3/lib/rake/backtrace.rb +24 -0
- data/vendor/cache/ruby/2.7.0/gems/rake-12.3.3/lib/rake/clean.rb +78 -0
- data/vendor/cache/ruby/2.7.0/gems/rake-12.3.3/lib/rake/cloneable.rb +17 -0
- data/vendor/cache/ruby/2.7.0/gems/rake-12.3.3/lib/rake/cpu_counter.rb +107 -0
- data/vendor/cache/ruby/2.7.0/gems/rake-12.3.3/lib/rake/default_loader.rb +15 -0
- data/vendor/cache/ruby/2.7.0/gems/rake-12.3.3/lib/rake/dsl_definition.rb +195 -0
- data/vendor/cache/ruby/2.7.0/gems/rake-12.3.3/lib/rake/early_time.rb +22 -0
- data/vendor/cache/ruby/2.7.0/gems/rake-12.3.3/lib/rake/ext/core.rb +26 -0
- data/vendor/cache/ruby/2.7.0/gems/rake-12.3.3/lib/rake/ext/string.rb +176 -0
- data/vendor/cache/ruby/2.7.0/gems/rake-12.3.3/lib/rake/file_creation_task.rb +25 -0
- data/vendor/cache/ruby/2.7.0/gems/rake-12.3.3/lib/rake/file_list.rb +435 -0
- data/vendor/cache/ruby/2.7.0/gems/rake-12.3.3/lib/rake/file_task.rb +54 -0
- data/vendor/cache/ruby/2.7.0/gems/rake-12.3.3/lib/rake/file_utils.rb +137 -0
- data/vendor/cache/ruby/2.7.0/gems/rake-12.3.3/lib/rake/file_utils_ext.rb +145 -0
- data/vendor/cache/ruby/2.7.0/gems/rake-12.3.3/lib/rake/invocation_chain.rb +57 -0
- data/vendor/cache/ruby/2.7.0/gems/rake-12.3.3/lib/rake/invocation_exception_mixin.rb +17 -0
- data/vendor/cache/ruby/2.7.0/gems/rake-12.3.3/lib/rake/late_time.rb +18 -0
- data/vendor/cache/ruby/2.7.0/gems/rake-12.3.3/lib/rake/linked_list.rb +112 -0
- data/vendor/cache/ruby/2.7.0/gems/rake-12.3.3/lib/rake/loaders/makefile.rb +54 -0
- data/vendor/cache/ruby/2.7.0/gems/rake-12.3.3/lib/rake/multi_task.rb +14 -0
- data/vendor/cache/ruby/2.7.0/gems/rake-12.3.3/lib/rake/name_space.rb +38 -0
- data/vendor/cache/ruby/2.7.0/gems/rake-12.3.3/lib/rake/packagetask.rb +207 -0
- data/vendor/cache/ruby/2.7.0/gems/rake-12.3.3/lib/rake/phony.rb +16 -0
- data/vendor/cache/ruby/2.7.0/gems/rake-12.3.3/lib/rake/private_reader.rb +21 -0
- data/vendor/cache/ruby/2.7.0/gems/rake-12.3.3/lib/rake/promise.rb +100 -0
- data/vendor/cache/ruby/2.7.0/gems/rake-12.3.3/lib/rake/pseudo_status.rb +30 -0
- data/vendor/cache/ruby/2.7.0/gems/rake-12.3.3/lib/rake/rake_module.rb +67 -0
- data/vendor/cache/ruby/2.7.0/gems/rake-12.3.3/lib/rake/rake_test_loader.rb +27 -0
- data/vendor/cache/ruby/2.7.0/gems/rake-12.3.3/lib/rake/rule_recursion_overflow_error.rb +20 -0
- data/vendor/cache/ruby/2.7.0/gems/rake-12.3.3/lib/rake/scope.rb +43 -0
- data/vendor/cache/ruby/2.7.0/gems/rake-12.3.3/lib/rake/task.rb +413 -0
- data/vendor/cache/ruby/2.7.0/gems/rake-12.3.3/lib/rake/task_argument_error.rb +8 -0
- data/vendor/cache/ruby/2.7.0/gems/rake-12.3.3/lib/rake/task_arguments.rb +109 -0
- data/vendor/cache/ruby/2.7.0/gems/rake-12.3.3/lib/rake/task_manager.rb +324 -0
- data/vendor/cache/ruby/2.7.0/gems/rake-12.3.3/lib/rake/tasklib.rb +12 -0
- data/vendor/cache/ruby/2.7.0/gems/rake-12.3.3/lib/rake/testtask.rb +224 -0
- data/vendor/cache/ruby/2.7.0/gems/rake-12.3.3/lib/rake/thread_history_display.rb +49 -0
- data/vendor/cache/ruby/2.7.0/gems/rake-12.3.3/lib/rake/thread_pool.rb +163 -0
- data/vendor/cache/ruby/2.7.0/gems/rake-12.3.3/lib/rake/trace_output.rb +23 -0
- data/vendor/cache/ruby/2.7.0/gems/rake-12.3.3/lib/rake/version.rb +10 -0
- data/vendor/cache/ruby/2.7.0/gems/rake-12.3.3/lib/rake/win32.rb +51 -0
- data/vendor/cache/ruby/2.7.0/gems/rake-12.3.3/rake.gemspec +42 -0
- data/vendor/cache/ruby/2.7.0/gems/ruby-progressbar-1.10.1/LICENSE.txt +19 -0
- data/vendor/cache/ruby/2.7.0/gems/ruby-progressbar-1.10.1/README.md +38 -0
- data/vendor/cache/ruby/2.7.0/gems/ruby-progressbar-1.10.1/Rakefile +2 -0
- data/vendor/cache/ruby/2.7.0/gems/ruby-progressbar-1.10.1/lib/ruby-progressbar.rb +22 -0
- data/vendor/cache/ruby/2.7.0/gems/ruby-progressbar-1.10.1/lib/ruby-progressbar/base.rb +183 -0
- data/vendor/cache/ruby/2.7.0/gems/ruby-progressbar-1.10.1/lib/ruby-progressbar/calculators/length.rb +100 -0
- data/vendor/cache/ruby/2.7.0/gems/ruby-progressbar-1.10.1/lib/ruby-progressbar/calculators/running_average.rb +9 -0
- data/vendor/cache/ruby/2.7.0/gems/ruby-progressbar-1.10.1/lib/ruby-progressbar/components.rb +5 -0
- data/vendor/cache/ruby/2.7.0/gems/ruby-progressbar-1.10.1/lib/ruby-progressbar/components/bar.rb +102 -0
- data/vendor/cache/ruby/2.7.0/gems/ruby-progressbar-1.10.1/lib/ruby-progressbar/components/percentage.rb +29 -0
- data/vendor/cache/ruby/2.7.0/gems/ruby-progressbar-1.10.1/lib/ruby-progressbar/components/rate.rb +43 -0
- data/vendor/cache/ruby/2.7.0/gems/ruby-progressbar-1.10.1/lib/ruby-progressbar/components/time.rb +107 -0
- data/vendor/cache/ruby/2.7.0/gems/ruby-progressbar-1.10.1/lib/ruby-progressbar/components/title.rb +13 -0
- data/vendor/cache/ruby/2.7.0/gems/ruby-progressbar-1.10.1/lib/ruby-progressbar/errors/invalid_progress_error.rb +4 -0
- data/vendor/cache/ruby/2.7.0/gems/ruby-progressbar-1.10.1/lib/ruby-progressbar/format.rb +3 -0
- data/vendor/cache/ruby/2.7.0/gems/ruby-progressbar-1.10.1/lib/ruby-progressbar/format/formatter.rb +27 -0
- data/vendor/cache/ruby/2.7.0/gems/ruby-progressbar-1.10.1/lib/ruby-progressbar/format/molecule.rb +60 -0
- data/vendor/cache/ruby/2.7.0/gems/ruby-progressbar-1.10.1/lib/ruby-progressbar/format/string.rb +36 -0
- data/vendor/cache/ruby/2.7.0/gems/ruby-progressbar-1.10.1/lib/ruby-progressbar/output.rb +68 -0
- data/vendor/cache/ruby/2.7.0/gems/ruby-progressbar-1.10.1/lib/ruby-progressbar/outputs/non_tty.rb +47 -0
- data/vendor/cache/ruby/2.7.0/gems/ruby-progressbar-1.10.1/lib/ruby-progressbar/outputs/null.rb +33 -0
- data/vendor/cache/ruby/2.7.0/gems/ruby-progressbar-1.10.1/lib/ruby-progressbar/outputs/tty.rb +32 -0
- data/vendor/cache/ruby/2.7.0/gems/ruby-progressbar-1.10.1/lib/ruby-progressbar/progress.rb +118 -0
- data/vendor/cache/ruby/2.7.0/gems/ruby-progressbar-1.10.1/lib/ruby-progressbar/refinements.rb +1 -0
- data/vendor/cache/ruby/2.7.0/gems/ruby-progressbar-1.10.1/lib/ruby-progressbar/refinements/enumerator.rb +23 -0
- data/vendor/cache/ruby/2.7.0/gems/ruby-progressbar-1.10.1/lib/ruby-progressbar/throttle.rb +25 -0
- data/vendor/cache/ruby/2.7.0/gems/ruby-progressbar-1.10.1/lib/ruby-progressbar/time.rb +32 -0
- data/vendor/cache/ruby/2.7.0/gems/ruby-progressbar-1.10.1/lib/ruby-progressbar/timer.rb +72 -0
- data/vendor/cache/ruby/2.7.0/gems/ruby-progressbar-1.10.1/lib/ruby-progressbar/version.rb +3 -0
- data/vendor/cache/ruby/2.7.0/specifications/ansi-1.5.0.gemspec +42 -0
- data/vendor/cache/ruby/2.7.0/specifications/builder-3.2.4.gemspec +23 -0
- data/vendor/cache/ruby/2.7.0/specifications/minitest-5.14.1.gemspec +38 -0
- data/vendor/cache/ruby/2.7.0/specifications/minitest-reporters-1.4.2.gemspec +43 -0
- data/vendor/cache/ruby/2.7.0/specifications/rake-12.3.3.gemspec +43 -0
- data/vendor/cache/ruby/2.7.0/specifications/ruby-progressbar-1.10.1.gemspec +40 -0
- metadata +330 -0
@@ -0,0 +1,245 @@
|
|
1
|
+
module Minitest
|
2
|
+
module Reporters
|
3
|
+
# A reporter identical to the standard Minitest reporter except with more
|
4
|
+
# colors.
|
5
|
+
#
|
6
|
+
# Based upon Ryan Davis of Seattle.rb's Minitest (MIT License).
|
7
|
+
#
|
8
|
+
# @see https://github.com/seattlerb/minitest Minitest
|
9
|
+
|
10
|
+
class DefaultReporter < BaseReporter
|
11
|
+
include ANSI::Code
|
12
|
+
include RelativePosition
|
13
|
+
|
14
|
+
def initialize(options = {})
|
15
|
+
super
|
16
|
+
@detailed_skip = options.fetch(:detailed_skip, true)
|
17
|
+
@slow_count = options.fetch(:slow_count, 0)
|
18
|
+
@slow_suite_count = options.fetch(:slow_suite_count, 0)
|
19
|
+
@suite_times = []
|
20
|
+
@suite_start_times = {}
|
21
|
+
@fast_fail = options.fetch(:fast_fail, false)
|
22
|
+
@show_test_location = options.fetch(:location, false)
|
23
|
+
@options = options
|
24
|
+
end
|
25
|
+
|
26
|
+
def start
|
27
|
+
super
|
28
|
+
on_start
|
29
|
+
end
|
30
|
+
|
31
|
+
def on_start
|
32
|
+
puts
|
33
|
+
puts("# Running tests with run options %s:" % options[:args])
|
34
|
+
puts
|
35
|
+
end
|
36
|
+
|
37
|
+
def before_test(test)
|
38
|
+
super
|
39
|
+
print "\n#{test.class}##{test.name} " if options[:verbose]
|
40
|
+
end
|
41
|
+
|
42
|
+
def before_suite(suite)
|
43
|
+
@suite_start_times[suite] = Minitest::Reporters.clock_time
|
44
|
+
super
|
45
|
+
end
|
46
|
+
|
47
|
+
def after_suite(suite)
|
48
|
+
super
|
49
|
+
duration = suite_duration(suite)
|
50
|
+
@suite_times << [suite.name, duration]
|
51
|
+
end
|
52
|
+
|
53
|
+
def record(test)
|
54
|
+
super
|
55
|
+
|
56
|
+
on_record(test)
|
57
|
+
end
|
58
|
+
|
59
|
+
def on_record(test)
|
60
|
+
print "#{"%.2f" % test.time} = " if options[:verbose]
|
61
|
+
|
62
|
+
# Print the pass/skip/fail mark
|
63
|
+
print(if test.passed?
|
64
|
+
record_pass(test)
|
65
|
+
elsif test.skipped?
|
66
|
+
record_skip(test)
|
67
|
+
elsif test.failure
|
68
|
+
record_failure(test)
|
69
|
+
end)
|
70
|
+
|
71
|
+
# Print fast_fail information
|
72
|
+
if @fast_fail && (test.skipped? || test.failure)
|
73
|
+
print_failure(test)
|
74
|
+
end
|
75
|
+
end
|
76
|
+
|
77
|
+
def record_pass(record)
|
78
|
+
green(record.result_code)
|
79
|
+
end
|
80
|
+
|
81
|
+
def record_skip(record)
|
82
|
+
yellow(record.result_code)
|
83
|
+
end
|
84
|
+
|
85
|
+
def record_failure(record)
|
86
|
+
red(record.result_code)
|
87
|
+
end
|
88
|
+
|
89
|
+
def report
|
90
|
+
super
|
91
|
+
on_report
|
92
|
+
end
|
93
|
+
|
94
|
+
def on_report
|
95
|
+
status_line = "Finished tests in %.6fs, %.4f tests/s, %.4f assertions/s." %
|
96
|
+
[total_time, count / total_time, assertions / total_time]
|
97
|
+
|
98
|
+
puts
|
99
|
+
puts
|
100
|
+
puts colored_for(suite_result, status_line)
|
101
|
+
puts
|
102
|
+
|
103
|
+
unless @fast_fail
|
104
|
+
tests.reject(&:passed?).each do |test|
|
105
|
+
print_failure(test)
|
106
|
+
end
|
107
|
+
end
|
108
|
+
|
109
|
+
if @slow_count > 0
|
110
|
+
slow_tests = tests.sort_by(&:time).reverse.take(@slow_count)
|
111
|
+
|
112
|
+
puts
|
113
|
+
puts "Slowest tests:"
|
114
|
+
puts
|
115
|
+
|
116
|
+
slow_tests.each do |test|
|
117
|
+
puts "%.6fs %s#%s" % [test.time, test.name, test_class(test)]
|
118
|
+
end
|
119
|
+
end
|
120
|
+
|
121
|
+
if @slow_suite_count > 0
|
122
|
+
slow_suites = @suite_times.sort_by { |x| x[1] }.reverse.take(@slow_suite_count)
|
123
|
+
|
124
|
+
puts
|
125
|
+
puts "Slowest test classes:"
|
126
|
+
puts
|
127
|
+
|
128
|
+
slow_suites.each do |slow_suite|
|
129
|
+
puts "%.6fs %s" % [slow_suite[1], slow_suite[0]]
|
130
|
+
end
|
131
|
+
end
|
132
|
+
|
133
|
+
puts
|
134
|
+
print colored_for(suite_result, result_line)
|
135
|
+
puts
|
136
|
+
end
|
137
|
+
|
138
|
+
alias to_s report
|
139
|
+
|
140
|
+
def print_failure(test)
|
141
|
+
message = message_for(test)
|
142
|
+
unless message.nil? || message.strip == ''
|
143
|
+
puts
|
144
|
+
puts colored_for(result(test), message)
|
145
|
+
if @show_test_location
|
146
|
+
location = get_source_location(test)
|
147
|
+
puts "\n\n#{relative_path(location[0])}:#{location[1]}"
|
148
|
+
end
|
149
|
+
|
150
|
+
end
|
151
|
+
end
|
152
|
+
|
153
|
+
private
|
154
|
+
|
155
|
+
def relative_path(path)
|
156
|
+
Pathname.new(path).relative_path_from(Pathname.new(Dir.getwd))
|
157
|
+
end
|
158
|
+
|
159
|
+
def get_source_location(result)
|
160
|
+
if result.respond_to? :klass
|
161
|
+
result.source_location
|
162
|
+
else
|
163
|
+
result.method(result.name).source_location
|
164
|
+
end
|
165
|
+
end
|
166
|
+
|
167
|
+
def color?
|
168
|
+
return @color if defined?(@color)
|
169
|
+
@color = @options.fetch(:color) do
|
170
|
+
io.tty? && (
|
171
|
+
ENV["TERM"] =~ /^screen|color/ ||
|
172
|
+
ENV["EMACS"] == "t"
|
173
|
+
)
|
174
|
+
end
|
175
|
+
end
|
176
|
+
|
177
|
+
def green(string)
|
178
|
+
color? ? ANSI::Code.green(string) : string
|
179
|
+
end
|
180
|
+
|
181
|
+
def yellow(string)
|
182
|
+
color? ? ANSI::Code.yellow(string) : string
|
183
|
+
end
|
184
|
+
|
185
|
+
def red(string)
|
186
|
+
color? ? ANSI::Code.red(string) : string
|
187
|
+
end
|
188
|
+
|
189
|
+
def colored_for(result, string)
|
190
|
+
case result
|
191
|
+
when :fail, :error; red(string)
|
192
|
+
when :skip; yellow(string)
|
193
|
+
else green(string)
|
194
|
+
end
|
195
|
+
end
|
196
|
+
|
197
|
+
def suite_result
|
198
|
+
case
|
199
|
+
when failures > 0; :fail
|
200
|
+
when errors > 0; :error
|
201
|
+
when skips > 0; :skip
|
202
|
+
else :pass
|
203
|
+
end
|
204
|
+
end
|
205
|
+
|
206
|
+
def location(exception)
|
207
|
+
last_before_assertion = ''
|
208
|
+
exception.backtrace.reverse_each do |s|
|
209
|
+
break if s =~ /in .(assert|refute|flunk|pass|fail|raise|must|wont)/
|
210
|
+
last_before_assertion = s
|
211
|
+
end
|
212
|
+
|
213
|
+
last_before_assertion.sub(/:in .*$/, '')
|
214
|
+
end
|
215
|
+
|
216
|
+
def message_for(test)
|
217
|
+
e = test.failure
|
218
|
+
|
219
|
+
if test.skipped?
|
220
|
+
if @detailed_skip
|
221
|
+
"Skipped:\n#{test_class(test)}##{test.name} [#{location(e)}]:\n#{e.message}"
|
222
|
+
end
|
223
|
+
elsif test.error?
|
224
|
+
"Error:\n#{test_class(test)}##{test.name}:\n#{e.message}"
|
225
|
+
else
|
226
|
+
"Failure:\n#{test_class(test)}##{test.name} [#{test.failure.location}]\n#{e.class}: #{e.message}"
|
227
|
+
end
|
228
|
+
end
|
229
|
+
|
230
|
+
def result_line
|
231
|
+
'%d tests, %d assertions, %d failures, %d errors, %d skips' %
|
232
|
+
[count, assertions, failures, errors, skips]
|
233
|
+
end
|
234
|
+
|
235
|
+
def suite_duration(suite)
|
236
|
+
start_time = @suite_start_times.delete(suite)
|
237
|
+
if start_time.nil?
|
238
|
+
0
|
239
|
+
else
|
240
|
+
Minitest::Reporters.clock_time - start_time
|
241
|
+
end
|
242
|
+
end
|
243
|
+
end
|
244
|
+
end
|
245
|
+
end
|
data/vendor/cache/ruby/2.7.0/gems/minitest-reporters-1.4.2/lib/minitest/reporters/html_reporter.rb
ADDED
@@ -0,0 +1,224 @@
|
|
1
|
+
require 'builder'
|
2
|
+
require 'fileutils'
|
3
|
+
require 'erb'
|
4
|
+
|
5
|
+
module Minitest
|
6
|
+
module Reporters
|
7
|
+
# A reporter for generating HTML test reports
|
8
|
+
# This is recommended to be used with a CI server, where the report is kept as an artifact and is accessible via
|
9
|
+
# a shared link
|
10
|
+
#
|
11
|
+
# The reporter sorts the results alphabetically and then by results
|
12
|
+
# so that failing and skipped tests are at the top.
|
13
|
+
#
|
14
|
+
# When using Minitest Specs, the number prefix is dropped from the name of the test so that it reads well
|
15
|
+
#
|
16
|
+
# On each test run all files in the reports directory are deleted, this prevents a build up of old reports
|
17
|
+
#
|
18
|
+
# The report is generated using ERB. A custom ERB template can be provided but it is not required
|
19
|
+
# The default ERB template uses JQuery and Bootstrap, both of these are included by referencing the CDN sites
|
20
|
+
class HtmlReporter < BaseReporter
|
21
|
+
# The title of the report
|
22
|
+
attr_reader :title
|
23
|
+
|
24
|
+
# The number of tests that passed
|
25
|
+
def passes
|
26
|
+
count - failures - errors - skips
|
27
|
+
end
|
28
|
+
|
29
|
+
# The percentage of tests that passed, calculated in a way that avoids rounding errors
|
30
|
+
def percent_passes
|
31
|
+
100 - percent_skipps - percent_errors_failures
|
32
|
+
end
|
33
|
+
|
34
|
+
# The percentage of tests that were skipped
|
35
|
+
def percent_skipps
|
36
|
+
(skips / count.to_f * 100).to_i
|
37
|
+
end
|
38
|
+
|
39
|
+
# The percentage of tests that failed
|
40
|
+
def percent_errors_failures
|
41
|
+
((errors + failures) / count.to_f * 100).to_i
|
42
|
+
end
|
43
|
+
|
44
|
+
# Trims off the number prefix on test names when using Minitest Specs
|
45
|
+
def friendly_name(test)
|
46
|
+
groups = test.name.scan(/(test_\d+_)(.*)/i)
|
47
|
+
return test.name if groups.empty?
|
48
|
+
"it #{groups[0][1]}"
|
49
|
+
end
|
50
|
+
|
51
|
+
# The constructor takes a hash, and uses the following keys:
|
52
|
+
# :title - the title that will be used in the report, defaults to 'Test Results'
|
53
|
+
# :reports_dir - the directory the reports should be written to, defaults to 'test/html_reports'
|
54
|
+
# :erb_template - the path to a custom ERB template, defaults to the supplied ERB template
|
55
|
+
# :mode - Useful for debugging, :terse suppresses errors and is the default, :verbose lets errors bubble up
|
56
|
+
# :output_filename - the report's filename, defaults to 'index.html'
|
57
|
+
def initialize(args = {})
|
58
|
+
super({})
|
59
|
+
|
60
|
+
defaults = {
|
61
|
+
:title => 'Test Results',
|
62
|
+
:erb_template => "#{File.dirname(__FILE__)}/../templates/index.html.erb",
|
63
|
+
:reports_dir => 'test/html_reports',
|
64
|
+
:mode => :safe,
|
65
|
+
:output_filename => 'index.html',
|
66
|
+
}
|
67
|
+
|
68
|
+
settings = defaults.merge(args)
|
69
|
+
|
70
|
+
@mode = settings[:mode]
|
71
|
+
@title = settings[:title]
|
72
|
+
@erb_template = settings[:erb_template]
|
73
|
+
@output_filename = settings[:output_filename]
|
74
|
+
reports_dir = settings[:reports_dir]
|
75
|
+
|
76
|
+
@reports_path = File.absolute_path(reports_dir)
|
77
|
+
end
|
78
|
+
|
79
|
+
def start
|
80
|
+
super
|
81
|
+
|
82
|
+
puts "Emptying #{@reports_path}"
|
83
|
+
FileUtils.mkdir_p(@reports_path)
|
84
|
+
File.delete(html_file) if File.exist?(html_file)
|
85
|
+
end
|
86
|
+
|
87
|
+
# Called by the framework to generate the report
|
88
|
+
def report
|
89
|
+
super
|
90
|
+
|
91
|
+
begin
|
92
|
+
puts "Writing HTML reports to #{@reports_path}"
|
93
|
+
erb_str = File.read(@erb_template)
|
94
|
+
renderer = ERB.new(erb_str)
|
95
|
+
|
96
|
+
tests_by_suites = tests.group_by { |test| test_class(test) } # taken from the JUnit reporter
|
97
|
+
|
98
|
+
suites = tests_by_suites.map do |suite, tests|
|
99
|
+
suite_summary = summarize_suite(suite, tests)
|
100
|
+
suite_summary[:tests] = tests.sort { |a, b| compare_tests(a, b) }
|
101
|
+
suite_summary
|
102
|
+
end
|
103
|
+
|
104
|
+
suites.sort! { |a, b| compare_suites(a, b) }
|
105
|
+
|
106
|
+
result = renderer.result(binding)
|
107
|
+
File.open(html_file, 'w') do |f|
|
108
|
+
f.write(result)
|
109
|
+
end
|
110
|
+
|
111
|
+
# rubocop:disable Lint/RescueException
|
112
|
+
rescue Exception => e
|
113
|
+
puts 'There was an error writing the HTML report'
|
114
|
+
puts 'This may have been caused by cancelling the test run'
|
115
|
+
puts 'Use mode => :verbose in the HTML reporters constructor to see more detail' if @mode == :terse
|
116
|
+
puts 'Use mode => :terse in the HTML reporters constructor to see less detail' if @mode != :terse
|
117
|
+
raise e if @mode != :terse
|
118
|
+
end
|
119
|
+
# rubocop:enable Lint/RescueException
|
120
|
+
end
|
121
|
+
|
122
|
+
private
|
123
|
+
|
124
|
+
def html_file
|
125
|
+
"#{@reports_path}/#{@output_filename}"
|
126
|
+
end
|
127
|
+
|
128
|
+
def compare_suites_by_name(suite_a, suite_b)
|
129
|
+
suite_a[:name] <=> suite_b[:name]
|
130
|
+
end
|
131
|
+
|
132
|
+
def compare_tests_by_name(test_a, test_b)
|
133
|
+
friendly_name(test_a) <=> friendly_name(test_b)
|
134
|
+
end
|
135
|
+
|
136
|
+
# Test suites are first ordered by evaluating the results of the tests, then by test suite name
|
137
|
+
# Test suites which have failing tests are given highest order
|
138
|
+
# Tests suites which have skipped tests are given second highest priority
|
139
|
+
def compare_suites(suite_a, suite_b)
|
140
|
+
return compare_suites_by_name(suite_a, suite_b) if suite_a[:has_errors_or_failures] && suite_b[:has_errors_or_failures]
|
141
|
+
return -1 if suite_a[:has_errors_or_failures] && !suite_b[:has_errors_or_failures]
|
142
|
+
return 1 if !suite_a[:has_errors_or_failures] && suite_b[:has_errors_or_failures]
|
143
|
+
|
144
|
+
return compare_suites_by_name(suite_a, suite_b) if suite_a[:has_skipps] && suite_b[:has_skipps]
|
145
|
+
return -1 if suite_a[:has_skipps] && !suite_b[:has_skipps]
|
146
|
+
return 1 if !suite_a[:has_skipps] && suite_b[:has_skipps]
|
147
|
+
|
148
|
+
compare_suites_by_name(suite_a, suite_b)
|
149
|
+
end
|
150
|
+
|
151
|
+
# Tests are first ordered by evaluating the results of the tests, then by tests names
|
152
|
+
# Tess which fail are given highest order
|
153
|
+
# Tests which are skipped are given second highest priority
|
154
|
+
def compare_tests(test_a, test_b)
|
155
|
+
return compare_tests_by_name(test_a, test_b) if test_fail_or_error?(test_a) && test_fail_or_error?(test_b)
|
156
|
+
|
157
|
+
return -1 if test_fail_or_error?(test_a) && !test_fail_or_error?(test_b)
|
158
|
+
return 1 if !test_fail_or_error?(test_a) && test_fail_or_error?(test_b)
|
159
|
+
|
160
|
+
return compare_tests_by_name(test_a, test_b) if test_a.skipped? && test_b.skipped?
|
161
|
+
return -1 if test_a.skipped? && !test_b.skipped?
|
162
|
+
return 1 if !test_a.skipped? && test_b.skipped?
|
163
|
+
|
164
|
+
compare_tests_by_name(test_a, test_b)
|
165
|
+
end
|
166
|
+
|
167
|
+
def test_fail_or_error?(test)
|
168
|
+
test.error? || test.failure
|
169
|
+
end
|
170
|
+
|
171
|
+
# based on analyze_suite from the JUnit reporter
|
172
|
+
def summarize_suite(suite, tests)
|
173
|
+
summary = Hash.new(0)
|
174
|
+
summary[:name] = suite.to_s
|
175
|
+
tests.each do |test|
|
176
|
+
summary[:"#{result(test)}_count"] += 1
|
177
|
+
summary[:assertion_count] += test.assertions
|
178
|
+
summary[:test_count] += 1
|
179
|
+
summary[:time] += test.time
|
180
|
+
end
|
181
|
+
summary[:has_errors_or_failures] = (summary[:fail_count] + summary[:error_count]) > 0
|
182
|
+
summary[:has_skipps] = summary[:skip_count] > 0
|
183
|
+
summary
|
184
|
+
end
|
185
|
+
|
186
|
+
# based on message_for(test) from the JUnit reporter
|
187
|
+
def message_for(test)
|
188
|
+
suite = test.class
|
189
|
+
name = test.name
|
190
|
+
e = test.failure
|
191
|
+
|
192
|
+
if test.passed?
|
193
|
+
nil
|
194
|
+
elsif test.skipped?
|
195
|
+
"Skipped:\n#{name}(#{suite}) [#{location(e)}]:\n#{e.message}\n"
|
196
|
+
elsif test.failure
|
197
|
+
"Failure:\n#{name}(#{suite}) [#{location(e)}]:\n#{e.message}\n"
|
198
|
+
elsif test.error?
|
199
|
+
"Error:\n#{name}(#{suite}):\n#{e.message}"
|
200
|
+
end
|
201
|
+
end
|
202
|
+
|
203
|
+
# taken from the JUnit reporter
|
204
|
+
def location(exception)
|
205
|
+
last_before_assertion = ''
|
206
|
+
exception.backtrace.reverse_each do |s|
|
207
|
+
break if s =~ /in .(assert|refute|flunk|pass|fail|raise|must|wont)/
|
208
|
+
last_before_assertion = s
|
209
|
+
end
|
210
|
+
last_before_assertion.sub(/:in .*$/, '')
|
211
|
+
end
|
212
|
+
|
213
|
+
def total_time_to_hms
|
214
|
+
return ('%.2fs' % total_time) if total_time < 1
|
215
|
+
|
216
|
+
hours = (total_time / (60 * 60)).round
|
217
|
+
minutes = ((total_time / 60) % 60).round.to_s.rjust(2, '0')
|
218
|
+
seconds = (total_time % 60).round.to_s.rjust(2, '0')
|
219
|
+
|
220
|
+
"#{hours}h#{minutes}m#{seconds}s"
|
221
|
+
end
|
222
|
+
end
|
223
|
+
end
|
224
|
+
end
|