minitest 5.11.3 → 5.12.2
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 +4 -4
- checksums.yaml.gz.sig +0 -0
- data.tar.gz.sig +0 -0
- data/History.rdoc +37 -0
- data/Manifest.txt +1 -0
- data/README.rdoc +24 -7
- data/Rakefile +1 -15
- data/lib/minitest.rb +63 -9
- data/lib/minitest/assertions.rb +48 -15
- data/lib/minitest/benchmark.rb +2 -2
- data/lib/minitest/spec.rb +4 -0
- data/test/minitest/metametameta.rb +3 -0
- data/test/minitest/test_minitest_assertions.rb +1389 -0
- data/test/minitest/test_minitest_mock.rb +2 -2
- data/test/minitest/test_minitest_spec.rb +164 -130
- data/test/minitest/test_minitest_test.rb +0 -1087
- metadata +25 -19
- metadata.gz.sig +0 -0
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: b2641be64df14346ec6637e9fa14064f8f52935d4f3c67acf11bc4e2d3b95986
|
|
4
|
+
data.tar.gz: 9c9c1be3371b73c68ebfda92173d5c468d584e0cd4e405329453027397a651f7
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: e04d9e566ec0d8175bb18cee72a44bee41f363fa4dea11d8b14e6373ae4ef489d3ee01fd8308cb9ba7b710d75e25d13650cd452a61017e151ce7616bebb6bd93
|
|
7
|
+
data.tar.gz: 3d324b4e1c1fc3ba294fd6806a3069df391a950b1594b27110accc0d0afe069d1b9555760555372bb597f0f6e99afbe9cc71bd2a049d1a74f7e9f385f4bc7322
|
checksums.yaml.gz.sig
CHANGED
|
Binary file
|
data.tar.gz.sig
CHANGED
|
Binary file
|
data/History.rdoc
CHANGED
|
@@ -1,3 +1,40 @@
|
|
|
1
|
+
=== 5.12.2 / 2019-09-28
|
|
2
|
+
|
|
3
|
+
* 1 bug fix:
|
|
4
|
+
|
|
5
|
+
* After chatting w/ @y-yagi and others, decided to lower support to include ruby 2.2.
|
|
6
|
+
|
|
7
|
+
=== 5.12.1 / 2019-09-28
|
|
8
|
+
|
|
9
|
+
* 1 minor enhancement:
|
|
10
|
+
|
|
11
|
+
* Added documentation for Reporter classes. (sshaw)
|
|
12
|
+
|
|
13
|
+
* 3 bug fixes:
|
|
14
|
+
|
|
15
|
+
* Avoid using 'match?' to support older ruby versions. (y-yagi)
|
|
16
|
+
* Fixed broken link to reference on goodness-of-fit testing. (havenwood)
|
|
17
|
+
* Update requirements in readme and Rakefile/hoe spec.
|
|
18
|
+
|
|
19
|
+
=== 5.12.0 / 2019-09-22
|
|
20
|
+
|
|
21
|
+
* 8 minor enhancements:
|
|
22
|
+
|
|
23
|
+
* Added a descriptive error if assert_output or assert_raises called without a block. (okuramasafumi)
|
|
24
|
+
* Changed mu_pp_for_diff to make having both \n and \\n easier to debug.
|
|
25
|
+
* Deprecated $N for specifying number of parallel test runners. Use MT_CPU.
|
|
26
|
+
* Deprecated use of global expectations. To be removed from MT6.
|
|
27
|
+
* Extended Assertions#mu_pp to encoding validity output for strings to improve diffs.
|
|
28
|
+
* Extended Assertions#mu_pp to output encoding and validity if invalid to improve diffs.
|
|
29
|
+
* Extended Assertions#mu_pp_for_diff to make escaped newlines more obvious in diffs.
|
|
30
|
+
* Fail gracefully when expectation used outside of `it`.
|
|
31
|
+
|
|
32
|
+
* 3 bug fixes:
|
|
33
|
+
|
|
34
|
+
* Check `option[:filter]` klass before match. Fixes 2.6 warning. (y-yagi)
|
|
35
|
+
* Fixed Assertions#diff from recalculating if set to nil
|
|
36
|
+
* Fixed spec section of readme to not use deprecated global expectations. (CheezItMan)
|
|
37
|
+
|
|
1
38
|
=== 5.11.3 / 2018-01-26
|
|
2
39
|
|
|
3
40
|
* 1 bug fix:
|
data/Manifest.txt
CHANGED
|
@@ -19,6 +19,7 @@ lib/minitest/spec.rb
|
|
|
19
19
|
lib/minitest/test.rb
|
|
20
20
|
lib/minitest/unit.rb
|
|
21
21
|
test/minitest/metametameta.rb
|
|
22
|
+
test/minitest/test_minitest_assertions.rb
|
|
22
23
|
test/minitest/test_minitest_benchmark.rb
|
|
23
24
|
test/minitest/test_minitest_mock.rb
|
|
24
25
|
test/minitest/test_minitest_reporter.rb
|
data/README.rdoc
CHANGED
|
@@ -126,13 +126,13 @@ Define your tests as methods beginning with +test_+.
|
|
|
126
126
|
|
|
127
127
|
describe "when asked about cheeseburgers" do
|
|
128
128
|
it "must respond positively" do
|
|
129
|
-
@meme.i_can_has_cheezburger
|
|
129
|
+
_(@meme.i_can_has_cheezburger?).must_equal "OHAI!"
|
|
130
130
|
end
|
|
131
131
|
end
|
|
132
132
|
|
|
133
133
|
describe "when asked about blending possibilities" do
|
|
134
134
|
it "won't say no" do
|
|
135
|
-
@meme.will_it_blend
|
|
135
|
+
_(@meme.will_it_blend?).wont_match /^no/i
|
|
136
136
|
end
|
|
137
137
|
end
|
|
138
138
|
end
|
|
@@ -220,9 +220,9 @@ verification to ensure they got all the calls they were expecting."
|
|
|
220
220
|
end
|
|
221
221
|
end
|
|
222
222
|
|
|
223
|
-
|
|
223
|
+
==== Multi-threading and Mocks
|
|
224
224
|
|
|
225
|
-
Minitest mocks do not support multi-threading
|
|
225
|
+
Minitest mocks do not support multi-threading. If it works, fine, if it doesn't
|
|
226
226
|
you can use regular ruby patterns and facilities like local variables. Here's
|
|
227
227
|
an example of asserting that code inside a thread is run:
|
|
228
228
|
|
|
@@ -294,6 +294,18 @@ provided via plugins. To see them, simply run with +--help+:
|
|
|
294
294
|
-p, --pride Pride. Show your testing pride!
|
|
295
295
|
-a, --autotest Connect to autotest server.
|
|
296
296
|
|
|
297
|
+
You can set up a rake task to run all your tests by adding this to your Rakefile:
|
|
298
|
+
|
|
299
|
+
require "rake/testtask"
|
|
300
|
+
|
|
301
|
+
Rake::TestTask.new(:test) do |t|
|
|
302
|
+
t.libs << "test"
|
|
303
|
+
t.libs << "lib"
|
|
304
|
+
t.test_files = FileList["test/**/test_*.rb"]
|
|
305
|
+
end
|
|
306
|
+
|
|
307
|
+
task :default => :test
|
|
308
|
+
|
|
297
309
|
== Writing Extensions
|
|
298
310
|
|
|
299
311
|
To define a plugin, add a file named minitest/XXX_plugin.rb to your
|
|
@@ -379,7 +391,7 @@ The following implementation and test:
|
|
|
379
391
|
end
|
|
380
392
|
|
|
381
393
|
it "must respond to work" do
|
|
382
|
-
@worker.must_respond_to :work
|
|
394
|
+
_(@worker).must_respond_to :work
|
|
383
395
|
end
|
|
384
396
|
end
|
|
385
397
|
|
|
@@ -469,6 +481,8 @@ able to require minitest and run your tests.
|
|
|
469
481
|
|
|
470
482
|
== Developing Minitest:
|
|
471
483
|
|
|
484
|
+
Minitest requires {Hoe}[https://rubygems.org/gems/hoe].
|
|
485
|
+
|
|
472
486
|
=== Minitest's own tests require UTF-8 external encoding.
|
|
473
487
|
|
|
474
488
|
This is a common problem in Windows, where the default external Encoding is
|
|
@@ -547,6 +561,7 @@ minispec-metadata :: Metadata for describe/it blocks & CLI tag filter.
|
|
|
547
561
|
E.g. <tt>it "requires JS driver", js: true do</tt> &
|
|
548
562
|
<tt>ruby test.rb --tag js</tt> runs tests tagged :js.
|
|
549
563
|
minispec-rails :: Minimal support to use Spec style in Rails 5+.
|
|
564
|
+
mini-apivore :: for swagger based automated API testing.
|
|
550
565
|
minitest-around :: Around block for minitest. An alternative to
|
|
551
566
|
setup/teardown dance.
|
|
552
567
|
minitest-assert_errors :: Adds Minitest assertions to test for errors raised
|
|
@@ -589,6 +604,7 @@ minitest-firemock :: Makes your Minitest mocks more resilient.
|
|
|
589
604
|
minitest-focus :: Focus on one test at a time.
|
|
590
605
|
minitest-gcstats :: A minitest plugin that adds a report of the top
|
|
591
606
|
tests by number of objects allocated.
|
|
607
|
+
minitest-global_expectations:: Support minitest expectation methods for all objects
|
|
592
608
|
minitest-great_expectations :: Generally useful additions to minitest's
|
|
593
609
|
assertions and expectations.
|
|
594
610
|
minitest-growl :: Test notifier for minitest via growl.
|
|
@@ -615,6 +631,7 @@ minitest-matchers :: Adds support for RSpec-style matchers to
|
|
|
615
631
|
minitest-matchers_vaccine :: Adds assertions that adhere to the matcher spec,
|
|
616
632
|
but without any expectation infections.
|
|
617
633
|
minitest-metadata :: Annotate tests with metadata (key-value).
|
|
634
|
+
minitest-mock_expectations :: Provides method call assertions for minitest.
|
|
618
635
|
minitest-mongoid :: Mongoid assertion matchers for Minitest.
|
|
619
636
|
minitest-must_not :: Provides must_not as an alias for wont in
|
|
620
637
|
Minitest.
|
|
@@ -664,6 +681,7 @@ minitest_owrapper :: Get tests results as a TestResult object.
|
|
|
664
681
|
minitest_should :: Shoulda style syntax for minitest test::unit.
|
|
665
682
|
minitest_tu_shim :: Bridges between test/unit and minitest.
|
|
666
683
|
mongoid-minitest :: Minitest matchers for Mongoid.
|
|
684
|
+
mutant-minitest :: Minitest integration for mutant.
|
|
667
685
|
pry-rescue :: A pry plugin w/ minitest support. See
|
|
668
686
|
pry-rescue/minitest.rb.
|
|
669
687
|
rspec2minitest :: Easily translate any RSpec matchers to Minitest
|
|
@@ -697,8 +715,7 @@ Authors... Please send me a pull request with a description of your minitest ext
|
|
|
697
715
|
|
|
698
716
|
== REQUIREMENTS:
|
|
699
717
|
|
|
700
|
-
* Ruby
|
|
701
|
-
* NOTE: 1.8 and 1.9 will be dropped in minitest 6+.
|
|
718
|
+
* Ruby 2.3+. No magic is involved. I hope.
|
|
702
719
|
|
|
703
720
|
== INSTALL:
|
|
704
721
|
|
data/Rakefile
CHANGED
|
@@ -11,21 +11,7 @@ Hoe.spec "minitest" do
|
|
|
11
11
|
|
|
12
12
|
license "MIT"
|
|
13
13
|
|
|
14
|
-
|
|
15
|
-
#
|
|
16
|
-
# self.post_install_message = <<-"EOM"
|
|
17
|
-
# NOTE: minitest 5 will be the last in the minitest family to support
|
|
18
|
-
# ruby 1.8 and 1.9 (and maybe 2.0?). If you need to keep using 1.8
|
|
19
|
-
# or 1.9, you need to pin your dependency to minitest with
|
|
20
|
-
# something like "~> 5.0".
|
|
21
|
-
#
|
|
22
|
-
# Further, minitest 6 will be dropping the following:
|
|
23
|
-
#
|
|
24
|
-
# + MiniTest (it's been Minitest for *years*)
|
|
25
|
-
# + MiniTest::Unit
|
|
26
|
-
# + MiniTest::Unit::TestCase
|
|
27
|
-
# + assert_send (unless you argue for it well)
|
|
28
|
-
# EOM
|
|
14
|
+
require_ruby_version "~> 2.2"
|
|
29
15
|
end
|
|
30
16
|
|
|
31
17
|
desc "Find missing expectations"
|
data/lib/minitest.rb
CHANGED
|
@@ -8,7 +8,7 @@ require "stringio"
|
|
|
8
8
|
# :include: README.rdoc
|
|
9
9
|
|
|
10
10
|
module Minitest
|
|
11
|
-
VERSION = "5.
|
|
11
|
+
VERSION = "5.12.2" # :nodoc:
|
|
12
12
|
ENCS = "".respond_to? :encoding # :nodoc:
|
|
13
13
|
|
|
14
14
|
@@installed_at_exit ||= false
|
|
@@ -21,7 +21,10 @@ module Minitest
|
|
|
21
21
|
# Parallel test executor
|
|
22
22
|
|
|
23
23
|
mc.send :attr_accessor, :parallel_executor
|
|
24
|
-
|
|
24
|
+
|
|
25
|
+
warn "DEPRECATED: use MT_CPU instead of N for parallel test runs" if ENV["N"]
|
|
26
|
+
n_threads = (ENV["MT_CPU"] || ENV["N"] || 2).to_i
|
|
27
|
+
self.parallel_executor = Parallel::Executor.new n_threads
|
|
25
28
|
|
|
26
29
|
##
|
|
27
30
|
# Filter object for backtraces.
|
|
@@ -301,7 +304,7 @@ module Minitest
|
|
|
301
304
|
|
|
302
305
|
def self.run reporter, options = {}
|
|
303
306
|
filter = options[:filter] || "/./"
|
|
304
|
-
filter = Regexp.new $1 if filter =~ %r%/(.*)/%
|
|
307
|
+
filter = Regexp.new $1 if filter.is_a?(String) && filter =~ %r%/(.*)/%
|
|
305
308
|
|
|
306
309
|
filtered_methods = self.runnable_methods.find_all { |m|
|
|
307
310
|
filter === m || filter === "#{self}##{m}"
|
|
@@ -422,7 +425,8 @@ module Minitest
|
|
|
422
425
|
|
|
423
426
|
##
|
|
424
427
|
# Returns a single character string to print based on the result
|
|
425
|
-
# of the run.
|
|
428
|
+
# of the run. One of <tt>"."</tt>, <tt>"F"</tt>,
|
|
429
|
+
# <tt>"E"</tt> or <tt>"S"</tt>.
|
|
426
430
|
|
|
427
431
|
def result_code
|
|
428
432
|
raise NotImplementedError, "subclass responsibility"
|
|
@@ -560,8 +564,10 @@ module Minitest
|
|
|
560
564
|
end
|
|
561
565
|
|
|
562
566
|
##
|
|
563
|
-
#
|
|
564
|
-
# result
|
|
567
|
+
# Output and record the result of the test. Call
|
|
568
|
+
# {result#result_code}[rdoc-ref:Runnable#result_code] to get the
|
|
569
|
+
# result character string. Stores the result of the run if the run
|
|
570
|
+
# did not pass.
|
|
565
571
|
|
|
566
572
|
def record result
|
|
567
573
|
end
|
|
@@ -628,18 +634,63 @@ module Minitest
|
|
|
628
634
|
#
|
|
629
635
|
# If you want to create an entirely different type of output (eg,
|
|
630
636
|
# CI, HTML, etc), this is the place to start.
|
|
637
|
+
#
|
|
638
|
+
# Example:
|
|
639
|
+
#
|
|
640
|
+
# class JenkinsCIReporter < StatisticsReporter
|
|
641
|
+
# def report
|
|
642
|
+
# super # Needed to calculate some statistics
|
|
643
|
+
#
|
|
644
|
+
# print "<testsuite "
|
|
645
|
+
# print "tests='#{count}' "
|
|
646
|
+
# print "failures='#{failures}' "
|
|
647
|
+
# # Remaining XML...
|
|
648
|
+
# end
|
|
649
|
+
# end
|
|
631
650
|
|
|
632
651
|
class StatisticsReporter < Reporter
|
|
633
|
-
|
|
652
|
+
##
|
|
653
|
+
# Total number of assertions.
|
|
654
|
+
|
|
634
655
|
attr_accessor :assertions
|
|
656
|
+
|
|
657
|
+
##
|
|
658
|
+
# Total number of test cases.
|
|
659
|
+
|
|
635
660
|
attr_accessor :count
|
|
661
|
+
|
|
662
|
+
##
|
|
663
|
+
# An +Array+ of test cases that failed or were skipped.
|
|
664
|
+
|
|
636
665
|
attr_accessor :results
|
|
666
|
+
|
|
667
|
+
##
|
|
668
|
+
# Time the test run started. If available, the monotonic clock is
|
|
669
|
+
# used and this is a +Float+, otherwise it's an instance of
|
|
670
|
+
# +Time+.
|
|
671
|
+
|
|
637
672
|
attr_accessor :start_time
|
|
673
|
+
|
|
674
|
+
##
|
|
675
|
+
# Test run time. If available, the monotonic clock is used and
|
|
676
|
+
# this is a +Float+, otherwise it's an instance of +Time+.
|
|
677
|
+
|
|
638
678
|
attr_accessor :total_time
|
|
679
|
+
|
|
680
|
+
##
|
|
681
|
+
# Total number of tests that failed.
|
|
682
|
+
|
|
639
683
|
attr_accessor :failures
|
|
684
|
+
|
|
685
|
+
##
|
|
686
|
+
# Total number of tests that erred.
|
|
687
|
+
|
|
640
688
|
attr_accessor :errors
|
|
689
|
+
|
|
690
|
+
##
|
|
691
|
+
# Total number of tests that where skipped.
|
|
692
|
+
|
|
641
693
|
attr_accessor :skips
|
|
642
|
-
# :startdoc:
|
|
643
694
|
|
|
644
695
|
def initialize io = $stdout, options = {} # :nodoc:
|
|
645
696
|
super
|
|
@@ -669,7 +720,10 @@ module Minitest
|
|
|
669
720
|
results << result if not result.passed? or result.skipped?
|
|
670
721
|
end
|
|
671
722
|
|
|
672
|
-
|
|
723
|
+
##
|
|
724
|
+
# Report on the tracked statistics.
|
|
725
|
+
|
|
726
|
+
def report
|
|
673
727
|
aggregate = results.group_by { |r| r.failure.class }
|
|
674
728
|
aggregate.default = [] # dumb. group_by should provide this
|
|
675
729
|
|
data/lib/minitest/assertions.rb
CHANGED
|
@@ -27,6 +27,8 @@ module Minitest
|
|
|
27
27
|
# figure out what diff to use.
|
|
28
28
|
|
|
29
29
|
def self.diff
|
|
30
|
+
return @diff if defined? @diff
|
|
31
|
+
|
|
30
32
|
@diff = if (RbConfig::CONFIG["host_os"] =~ /mswin|mingw/ &&
|
|
31
33
|
system("diff.exe", __FILE__, __FILE__)) then
|
|
32
34
|
"diff.exe -u"
|
|
@@ -38,9 +40,7 @@ module Minitest
|
|
|
38
40
|
"diff -u"
|
|
39
41
|
else
|
|
40
42
|
nil
|
|
41
|
-
end
|
|
42
|
-
|
|
43
|
-
@diff
|
|
43
|
+
end
|
|
44
44
|
end
|
|
45
45
|
|
|
46
46
|
##
|
|
@@ -61,12 +61,15 @@ module Minitest
|
|
|
61
61
|
butwas = mu_pp_for_diff act
|
|
62
62
|
result = nil
|
|
63
63
|
|
|
64
|
+
e1, e2 = expect.include?("\n"), expect.include?("\\n")
|
|
65
|
+
b1, b2 = butwas.include?("\n"), butwas.include?("\\n")
|
|
66
|
+
|
|
64
67
|
need_to_diff =
|
|
65
|
-
(
|
|
66
|
-
|
|
67
|
-
expect.size > 30
|
|
68
|
-
butwas.size > 30
|
|
69
|
-
expect == butwas)
|
|
68
|
+
(e1 ^ e2 ||
|
|
69
|
+
b1 ^ b2 ||
|
|
70
|
+
expect.size > 30 ||
|
|
71
|
+
butwas.size > 30 ||
|
|
72
|
+
expect == butwas) &&
|
|
70
73
|
Minitest::Assertions.diff
|
|
71
74
|
|
|
72
75
|
return "Expected: #{mu_pp exp}\n Actual: #{mu_pp act}" unless
|
|
@@ -101,8 +104,10 @@ module Minitest
|
|
|
101
104
|
|
|
102
105
|
##
|
|
103
106
|
# This returns a human-readable version of +obj+. By default
|
|
104
|
-
# #inspect is called. You can override this to use #
|
|
107
|
+
# #inspect is called. You can override this to use #pretty_inspect
|
|
105
108
|
# if you want.
|
|
109
|
+
#
|
|
110
|
+
# See Minitest::Test.make_my_diffs_pretty!
|
|
106
111
|
|
|
107
112
|
def mu_pp obj
|
|
108
113
|
s = obj.inspect
|
|
@@ -110,8 +115,11 @@ module Minitest
|
|
|
110
115
|
if defined? Encoding then
|
|
111
116
|
s = s.encode Encoding.default_external
|
|
112
117
|
|
|
113
|
-
if String === obj && obj.encoding != Encoding.default_external
|
|
114
|
-
|
|
118
|
+
if String === obj && (obj.encoding != Encoding.default_external ||
|
|
119
|
+
!obj.valid_encoding?) then
|
|
120
|
+
enc = "# encoding: #{obj.encoding}"
|
|
121
|
+
val = "# valid: #{obj.valid_encoding?}"
|
|
122
|
+
s = "#{enc}\n#{val}\n#{s}"
|
|
115
123
|
end
|
|
116
124
|
end
|
|
117
125
|
|
|
@@ -119,13 +127,32 @@ module Minitest
|
|
|
119
127
|
end
|
|
120
128
|
|
|
121
129
|
##
|
|
122
|
-
# This returns a diff-able human-readable version of +obj+.
|
|
123
|
-
# differs from the regular mu_pp because it expands escaped
|
|
124
|
-
# newlines and makes hex-values
|
|
130
|
+
# This returns a diff-able more human-readable version of +obj+.
|
|
131
|
+
# This differs from the regular mu_pp because it expands escaped
|
|
132
|
+
# newlines and makes hex-values (like object_ids) generic. This
|
|
125
133
|
# uses mu_pp to do the first pass and then cleans it up.
|
|
126
134
|
|
|
127
135
|
def mu_pp_for_diff obj
|
|
128
|
-
mu_pp
|
|
136
|
+
str = mu_pp obj
|
|
137
|
+
|
|
138
|
+
# both '\n' & '\\n' (_after_ mu_pp (aka inspect))
|
|
139
|
+
single = !!str.match(/(?<!\\|^)\\n/)
|
|
140
|
+
double = !!str.match(/(?<=\\|^)\\n/)
|
|
141
|
+
|
|
142
|
+
process =
|
|
143
|
+
if single ^ double then
|
|
144
|
+
if single then
|
|
145
|
+
lambda { |s| s == "\\n" ? "\n" : s } # unescape
|
|
146
|
+
else
|
|
147
|
+
lambda { |s| s == "\\\\n" ? "\\n\n" : s } # unescape a bit, add nls
|
|
148
|
+
end
|
|
149
|
+
else
|
|
150
|
+
:itself # leave it alone
|
|
151
|
+
end
|
|
152
|
+
|
|
153
|
+
str.
|
|
154
|
+
gsub(/\\?\\n/, &process).
|
|
155
|
+
gsub(/:0x[a-fA-F0-9]{4,}/m, ":0xXXXXXX") # anonymize hex values
|
|
129
156
|
end
|
|
130
157
|
|
|
131
158
|
##
|
|
@@ -283,6 +310,9 @@ module Minitest
|
|
|
283
310
|
# See also: #assert_silent
|
|
284
311
|
|
|
285
312
|
def assert_output stdout = nil, stderr = nil
|
|
313
|
+
flunk "assert_output requires a block to capture output." unless
|
|
314
|
+
block_given?
|
|
315
|
+
|
|
286
316
|
out, err = capture_io do
|
|
287
317
|
yield
|
|
288
318
|
end
|
|
@@ -319,6 +349,9 @@ module Minitest
|
|
|
319
349
|
# passed.
|
|
320
350
|
|
|
321
351
|
def assert_raises *exp
|
|
352
|
+
flunk "assert_raises requires a block to capture errors." unless
|
|
353
|
+
block_given?
|
|
354
|
+
|
|
322
355
|
msg = "#{exp.pop}.\n" if String === exp.last
|
|
323
356
|
exp << StandardError if exp.empty?
|
|
324
357
|
|
data/lib/minitest/benchmark.rb
CHANGED
|
@@ -109,8 +109,8 @@ module Minitest
|
|
|
109
109
|
# is applied against the slope itself. As such, you probably want
|
|
110
110
|
# to tighten it from the default.
|
|
111
111
|
#
|
|
112
|
-
# See
|
|
113
|
-
# more details.
|
|
112
|
+
# See https://www.graphpad.com/guides/prism/8/curve-fitting/reg_intepretingnonlinr2.htm
|
|
113
|
+
# for more details.
|
|
114
114
|
#
|
|
115
115
|
# Fit is calculated by #fit_linear.
|
|
116
116
|
#
|