micro_test 0.0.2 → 0.0.3

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.
Files changed (2) hide show
  1. data/lib/micro_test.rb +38 -6
  2. metadata +1 -1
data/lib/micro_test.rb CHANGED
@@ -14,11 +14,18 @@ module MicroTest
14
14
  end
15
15
 
16
16
  def self.log(value)
17
+ file_path = caller[1][0, caller[1].index(/:[0-9]+:/)]
18
+ line_num = caller[1].scan(/:[0-9]+:/).first.gsub(/:/, "").to_i
19
+ @files ||= {}
20
+ @files[file_path] ||= File.open(file_path, "r").readlines.map { |l| l.gsub(/\n/, "") }
21
+ line = @files[file_path][line_num - 1].strip
22
+
17
23
  if value
18
- puts " #{green :PASS} #{caller[1]}"
24
+ puts " #{green :PASS}: #{line}"
19
25
  @passed += 1
20
26
  else
21
- puts " #{red :FAIL} #{caller[1]}"
27
+ puts " #{red :FAIL}: #{red line}"
28
+ puts " #{file_path}:#{line_num}"
22
29
  @failed += 1
23
30
  end
24
31
  end
@@ -26,13 +33,22 @@ module MicroTest
26
33
  def self.run
27
34
  @passed = @failed = 0
28
35
  test_classes.each do |test_class|
36
+ before = test_class.callbacks[:before]
37
+ after = test_class.callbacks[:after]
38
+
29
39
  puts test_class.name
40
+ before[:all].call if before[:all]
30
41
  test_class.tests.each do |desc, block|
31
- puts "- test #{desc}: "
42
+ before[:each].call if before[:each]
43
+ puts "- test #{desc}"
32
44
  block.call
45
+ after[:each].call if after[:each]
33
46
  end
47
+ after[:all].call if after[:all]
34
48
  end
35
- puts "Passed Asserts: #{green @passed}, Failed Asserts: #{red @failed}"
49
+ puts "---"
50
+ puts "Passed: #{green @passed}, Failed: #{red @failed}"
51
+ puts "---"
36
52
  end
37
53
  end
38
54
 
@@ -41,6 +57,18 @@ module MicroTest
41
57
  MicroTest::Runner.test_classes << subclass
42
58
  end
43
59
 
60
+ def self.callbacks
61
+ @callbacks ||= { :before => {}, :after => {} }
62
+ end
63
+
64
+ def self.before(what, &block)
65
+ callbacks[:before][what] = block
66
+ end
67
+
68
+ def self.after(what, &block)
69
+ callbacks[:after][what] = block
70
+ end
71
+
44
72
  def self.tests
45
73
  @tests ||= {}
46
74
  end
@@ -57,10 +85,14 @@ end
57
85
 
58
86
  # class ExampleTest < MicroTest::Test
59
87
  # test "booleans" do
60
- # assert true
61
- # assert true
88
+ # assert 1 == 1
89
+ # assert true # should be true
62
90
  # assert false
63
91
  # end
92
+
93
+ # test "foobar" do
94
+ # assert 5 - 2 == 10 # math works
95
+ # end
64
96
  # end
65
97
 
66
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.2
4
+ version: 0.0.3
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors: