moomootest 1.0.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/lib/moomootest.rb +98 -0
- metadata +45 -0
checksums.yaml
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
---
|
|
2
|
+
SHA1:
|
|
3
|
+
metadata.gz: 87352cdf418abce2fb81cd1d8c707ab009635656
|
|
4
|
+
data.tar.gz: 6950b1d1baab19f0985be35239a8d75459e625af
|
|
5
|
+
SHA512:
|
|
6
|
+
metadata.gz: 51b6d7064b2d995a33ffc5d17d9c25add6dc74daeac03d2a7dd22c29ff5fb40b2e504d524de2cb3f5a283699de2792f6b3af0a7be4d5582a05e62637f83380ce
|
|
7
|
+
data.tar.gz: d8691d264c3d7ee875e3c5e9ac235ea5bb86dc8bf8514c0c487c7599a1f1c0ad46573ff568b196486d4186663fa9592d8e9fb46c486f4381b37f607d4898060b
|
data/lib/moomootest.rb
ADDED
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
# TODO: Randomize tests across classes/methods
|
|
2
|
+
# Create more assertions based on testing needs
|
|
3
|
+
# Use 'test "some test description here" do/assert/end' format
|
|
4
|
+
|
|
5
|
+
module Assertions
|
|
6
|
+
def test name="untitled"
|
|
7
|
+
yield
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
def assert test, msg = "Failed test"
|
|
11
|
+
unless test then
|
|
12
|
+
bt = caller.drop_while { |s| s =~ /#{__FILE__}/ }
|
|
13
|
+
raise RuntimeError, msg, bt
|
|
14
|
+
end
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
def assert_equal a, b
|
|
18
|
+
assert a == b, "Failed assert_equal #{a} vs #{b}"
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
def assert_in_delta a, b
|
|
22
|
+
assert (a-b).abs <= 0.001, "Failed assert_in_delta #{a} vs #{b}"
|
|
23
|
+
end
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
class Reporter
|
|
27
|
+
attr_accessor :failures
|
|
28
|
+
|
|
29
|
+
def initialize
|
|
30
|
+
self.failures = []
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
def << result
|
|
34
|
+
unless result.failure? then
|
|
35
|
+
print '.'
|
|
36
|
+
else
|
|
37
|
+
print 'F'
|
|
38
|
+
failures << result
|
|
39
|
+
end
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
def summary
|
|
43
|
+
puts
|
|
44
|
+
|
|
45
|
+
failures.each do |result|
|
|
46
|
+
failure = result.failure
|
|
47
|
+
puts
|
|
48
|
+
puts "Failure: #{result.class}##{result.name}: #{failure.message}"
|
|
49
|
+
puts " #{failure.backtrace.first}"
|
|
50
|
+
end
|
|
51
|
+
end
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
class MooMooTest
|
|
55
|
+
include Assertions
|
|
56
|
+
|
|
57
|
+
attr_accessor :failure, :name
|
|
58
|
+
alias failure? failure
|
|
59
|
+
|
|
60
|
+
TESTS = []
|
|
61
|
+
|
|
62
|
+
def initialize name
|
|
63
|
+
self.name = name
|
|
64
|
+
self.failure = false
|
|
65
|
+
end
|
|
66
|
+
|
|
67
|
+
def self.inherited x
|
|
68
|
+
TESTS << x
|
|
69
|
+
end
|
|
70
|
+
|
|
71
|
+
def self.run_all_tests
|
|
72
|
+
reporter = Reporter.new
|
|
73
|
+
|
|
74
|
+
TESTS.each do |klass|
|
|
75
|
+
klass.run reporter
|
|
76
|
+
end
|
|
77
|
+
|
|
78
|
+
reporter.summary
|
|
79
|
+
end
|
|
80
|
+
|
|
81
|
+
def self.test_names
|
|
82
|
+
public_instance_methods.grep(/^test_/)
|
|
83
|
+
end
|
|
84
|
+
|
|
85
|
+
def self.run reporter
|
|
86
|
+
test_names.shuffle.each do |name|
|
|
87
|
+
reporter << self.new(name).run
|
|
88
|
+
end
|
|
89
|
+
end
|
|
90
|
+
|
|
91
|
+
def run
|
|
92
|
+
send name
|
|
93
|
+
rescue => e
|
|
94
|
+
self.failure = e
|
|
95
|
+
ensure
|
|
96
|
+
return self
|
|
97
|
+
end
|
|
98
|
+
end
|
metadata
ADDED
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
|
2
|
+
name: moomootest
|
|
3
|
+
version: !ruby/object:Gem::Version
|
|
4
|
+
version: 1.0.0
|
|
5
|
+
platform: ruby
|
|
6
|
+
authors:
|
|
7
|
+
- Matt Congel
|
|
8
|
+
autorequire:
|
|
9
|
+
bindir: bin
|
|
10
|
+
cert_chain: []
|
|
11
|
+
date: 2017-05-16 00:00:00.000000000 Z
|
|
12
|
+
dependencies: []
|
|
13
|
+
description:
|
|
14
|
+
email: mattcongel@gmail.com
|
|
15
|
+
executables: []
|
|
16
|
+
extensions: []
|
|
17
|
+
extra_rdoc_files: []
|
|
18
|
+
files:
|
|
19
|
+
- lib/moomootest.rb
|
|
20
|
+
homepage: http://rubygems.org/gems/moomootest
|
|
21
|
+
licenses:
|
|
22
|
+
- MIT
|
|
23
|
+
metadata: {}
|
|
24
|
+
post_install_message:
|
|
25
|
+
rdoc_options: []
|
|
26
|
+
require_paths:
|
|
27
|
+
- lib
|
|
28
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
|
29
|
+
requirements:
|
|
30
|
+
- - ">="
|
|
31
|
+
- !ruby/object:Gem::Version
|
|
32
|
+
version: '0'
|
|
33
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
34
|
+
requirements:
|
|
35
|
+
- - ">="
|
|
36
|
+
- !ruby/object:Gem::Version
|
|
37
|
+
version: '0'
|
|
38
|
+
requirements: []
|
|
39
|
+
rubyforge_project:
|
|
40
|
+
rubygems_version: 2.6.10
|
|
41
|
+
signing_key:
|
|
42
|
+
specification_version: 4
|
|
43
|
+
summary: MooMooTest is a micro-sized test framework inspired by Ryan Davis and his
|
|
44
|
+
framework, Minitest
|
|
45
|
+
test_files: []
|