micro_test 0.0.5 → 0.0.6
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/README.md +73 -0
- data/bin/mt +2 -2
- data/lib/micro_test.rb +3 -17
- metadata +2 -3
- data/Gemfile +0 -2
- data/Gemfile.lock +0 -10
data/README.md
ADDED
@@ -0,0 +1,73 @@
|
|
1
|
+
# MicroTest
|
2
|
+
|
3
|
+
### Testing should be simple.
|
4
|
+
|
5
|
+
It bothers me that testing frameworks never seem to resist
|
6
|
+
the slippery slope of feature creep and eventually become an end unto themselves.
|
7
|
+
MiniTest is a step in the right direction, but still feels bigger than it should.
|
8
|
+
|
9
|
+
#### MicroTest is an experiment to see just how simple a testing "framework" can be.
|
10
|
+
|
11
|
+
## Features
|
12
|
+
|
13
|
+
* __Opinionated & small__ - _only 70 lines of code_
|
14
|
+
* __Only one assertion: `assert`__ - _since this is the heart of testing_
|
15
|
+
* __Tests run in random order__ - _to prevent the bad practice of run order depenencies_
|
16
|
+
* __Plays nice with others__ - _easy to introduce to an existing code base_
|
17
|
+
|
18
|
+
## Install
|
19
|
+
|
20
|
+
```bash
|
21
|
+
gem install micro_test
|
22
|
+
```
|
23
|
+
|
24
|
+
## API
|
25
|
+
|
26
|
+
* Tests subclass `MicroTest::Test`
|
27
|
+
* Define tests with `test "description" do ...`
|
28
|
+
* Assert statements with `assert [statement]`
|
29
|
+
* Run tests with `$mt /path/to/test_file_or_dir` or `MicroTest::Runner.run` from code
|
30
|
+
|
31
|
+
That's all there is to learn.
|
32
|
+
|
33
|
+
## Examples
|
34
|
+
|
35
|
+
Define a test.
|
36
|
+
|
37
|
+
```ruby
|
38
|
+
# /example/test/math_test.rb
|
39
|
+
class MathTest < MicroTest::Test
|
40
|
+
|
41
|
+
test "addition" do
|
42
|
+
assert 2 + 2 == 4
|
43
|
+
end
|
44
|
+
|
45
|
+
test "subtraction" do
|
46
|
+
assert 2 - 2 == 0
|
47
|
+
end
|
48
|
+
|
49
|
+
test "multiplication" do
|
50
|
+
assert 2 * 2 == 4
|
51
|
+
end
|
52
|
+
|
53
|
+
test "division" do
|
54
|
+
assert 2 / 2 == 1 # add a trailing comment if you want a message
|
55
|
+
end
|
56
|
+
|
57
|
+
# and one failing test
|
58
|
+
test "fail" do
|
59
|
+
assert 2 + 2 == 5
|
60
|
+
end
|
61
|
+
|
62
|
+
end
|
63
|
+
```
|
64
|
+
|
65
|
+
Run the tests.
|
66
|
+
|
67
|
+
```bash
|
68
|
+
$ mt /example/test
|
69
|
+
```
|
70
|
+
|
71
|
+
Test output.
|
72
|
+
|
73
|
+

|
data/bin/mt
CHANGED
@@ -3,7 +3,7 @@
|
|
3
3
|
require File.expand_path(File.join(File.dirname(__FILE__), "..", "lib", "micro_test"))
|
4
4
|
|
5
5
|
path = ARGV[0].to_s.strip
|
6
|
-
path =
|
6
|
+
path = Dir.pwd if path.empty?
|
7
7
|
|
8
8
|
if path == "-h" || path == "--help"
|
9
9
|
puts "Runs MicroTest on the provided path."
|
@@ -12,7 +12,7 @@ if path == "-h" || path == "--help"
|
|
12
12
|
exit
|
13
13
|
end
|
14
14
|
|
15
|
-
path = File.
|
15
|
+
path = File.join(Dir.pwd, path) unless path =~ /^\//
|
16
16
|
unless File.exist?(path)
|
17
17
|
puts "#{path} not found."
|
18
18
|
puts "Please check the path and try again."
|
data/lib/micro_test.rb
CHANGED
@@ -32,16 +32,16 @@ module MicroTest
|
|
32
32
|
|
33
33
|
def self.run
|
34
34
|
@passed = @failed = 0
|
35
|
-
test_classes.each do |test_class|
|
35
|
+
test_classes.shuffle.each do |test_class|
|
36
36
|
before = test_class.callbacks[:before]
|
37
37
|
after = test_class.callbacks[:after]
|
38
38
|
|
39
39
|
puts test_class.name
|
40
40
|
before[:all].call if before[:all]
|
41
|
-
test_class.tests.each do |desc
|
41
|
+
test_class.tests.keys.shuffle.each do |desc|
|
42
42
|
before[:each].call if before[:each]
|
43
43
|
puts "- test #{desc}"
|
44
|
-
|
44
|
+
test_class.tests[desc].call
|
45
45
|
after[:each].call if after[:each]
|
46
46
|
end
|
47
47
|
after[:all].call if after[:all]
|
@@ -82,17 +82,3 @@ module MicroTest
|
|
82
82
|
end
|
83
83
|
end
|
84
84
|
end
|
85
|
-
|
86
|
-
# class ExampleTest < MicroTest::Test
|
87
|
-
# test "booleans" do
|
88
|
-
# assert 1 == 1
|
89
|
-
# assert true # should be true
|
90
|
-
# assert false
|
91
|
-
# end
|
92
|
-
|
93
|
-
# test "foobar" do
|
94
|
-
# assert 5 - 2 == 10 # math works
|
95
|
-
# end
|
96
|
-
# end
|
97
|
-
|
98
|
-
# MicroTest::Runner.run
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: micro_test
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.6
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -23,8 +23,7 @@ extra_rdoc_files: []
|
|
23
23
|
files:
|
24
24
|
- lib/micro_test.rb
|
25
25
|
- bin/mt
|
26
|
-
-
|
27
|
-
- Gemfile.lock
|
26
|
+
- README.md
|
28
27
|
homepage: https://github.com/hopsoft/micro_test
|
29
28
|
licenses:
|
30
29
|
- MIT
|
data/Gemfile
DELETED