solea 0.9.30 → 0.9.31
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
- data/bin/solea +9 -8
- data/lib/solea.rb +25 -32
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 95e5e163b9fcdd8e1d03b1ce15dbfcf62420cf4f
|
4
|
+
data.tar.gz: 0d9025310246448d84a1c09491e93e6eb67c5fbc
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 028ccdde7c82470b8923247b9e3d2715410019c9e262ac73b85040d292d7aa78705d6023dd5f088415b793b1b8687d5c64962e45b1a2ead36f2ad5d213908899
|
7
|
+
data.tar.gz: f2044c39cfd90e7b91493f69869aeec18e6c18b276b1ee95a9bddd07a3d124f511876a71a5fdb1fefd869e10088e9ed548e1e0989413421199de70edb7c3ed46
|
data/bin/solea
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
2
|
|
3
|
-
require 'solea
|
3
|
+
require 'solea'
|
4
4
|
|
5
5
|
if ARGV[0]
|
6
6
|
if ARGV[0].match(/.+\.rb\z/)
|
@@ -9,9 +9,10 @@ if ARGV[0]
|
|
9
9
|
dir_name = ARGV[0]
|
10
10
|
end
|
11
11
|
end
|
12
|
+
|
12
13
|
if ARGV[1]
|
13
|
-
|
14
|
-
requested =
|
14
|
+
load file_name
|
15
|
+
requested = Solea.tests.flatten.find do |test|
|
15
16
|
test.metadata[:lineno] == ARGV[1].to_i
|
16
17
|
end
|
17
18
|
if ARGV[2]
|
@@ -20,7 +21,7 @@ if ARGV[1]
|
|
20
21
|
puts "Report requested".center(145, "-"), requested.report
|
21
22
|
end
|
22
23
|
else
|
23
|
-
|
24
|
+
files_loaded = []
|
24
25
|
if file_name
|
25
26
|
file_path = file_name
|
26
27
|
else
|
@@ -28,9 +29,9 @@ else
|
|
28
29
|
file_path = "#{dir_name}/**/*_spec.rb"
|
29
30
|
end
|
30
31
|
Dir.glob(file_path).each do |file|
|
31
|
-
|
32
|
-
|
32
|
+
load file
|
33
|
+
files_loaded << file
|
33
34
|
end
|
34
|
-
puts "\nFiles loaded: #{
|
35
|
-
puts Solea.report
|
35
|
+
puts "\nFiles loaded: #{files_loaded.join(", ")}"
|
36
|
+
puts Solea.report
|
36
37
|
end
|
data/lib/solea.rb
CHANGED
@@ -1,47 +1,43 @@
|
|
1
1
|
module Solea
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
if failing_tests.any?
|
18
|
-
message += "\n" + failing_tests.map do |test|
|
19
|
-
"#{filename} #{test.metadata[:lineno]}"
|
20
|
-
end.join("\n") + "\n\n"
|
21
|
-
end
|
22
|
-
end
|
2
|
+
class << self
|
3
|
+
attr_accessor :tests
|
4
|
+
end
|
5
|
+
|
6
|
+
def self.report
|
7
|
+
all_tests = @tests.flatten
|
8
|
+
passing_tests = all_tests.select{|test| test.pass }
|
9
|
+
failing_tests = all_tests.select{|test| !test.pass }
|
10
|
+
text_color = failing_tests.none? ? "37;47;1" : "37;41;1"
|
11
|
+
message = "\n\e[#{text_color}m" + "#{passing_tests.count} of #{all_tests.count} tests passed.".center(145) + "\e[0m\n\n"
|
12
|
+
if failing_tests.any?
|
13
|
+
message += "Failing tests: \"file path: lineno\"".center(145, "-") + "\n" +
|
14
|
+
failing_tests.map do |test|
|
15
|
+
"#{test.metadata[:filename]} #{test.metadata[:lineno]}"
|
16
|
+
end.join("\n") + "\n\n"
|
23
17
|
end
|
24
18
|
message
|
25
19
|
end
|
26
20
|
|
21
|
+
def self.test_class(class_name, &block)
|
22
|
+
@tests ||= []
|
23
|
+
class_test = ClassTest.new(class_name)
|
24
|
+
class_test.instance_exec &block
|
25
|
+
@tests << class_test.tests
|
26
|
+
end
|
27
|
+
|
27
28
|
class ClassTest
|
28
29
|
attr_accessor :tests
|
29
30
|
|
30
|
-
def initialize(class_name
|
31
|
+
def initialize(class_name)
|
31
32
|
@class_name = class_name
|
32
33
|
@tests = []
|
33
|
-
instance_exec &block
|
34
34
|
end
|
35
35
|
|
36
36
|
def test_method(method_name, &block)
|
37
37
|
method_test = MethodTest.new(method_name)
|
38
|
-
method_test.
|
38
|
+
method_test.instance_exec &block
|
39
39
|
@tests << method_test.tests
|
40
40
|
end
|
41
|
-
|
42
|
-
def report
|
43
|
-
Solea.report({ @filename => @tests })
|
44
|
-
end
|
45
41
|
end
|
46
42
|
|
47
43
|
class MethodTest
|
@@ -53,10 +49,6 @@ module Solea
|
|
53
49
|
@exceptions = []
|
54
50
|
@notes = []
|
55
51
|
end
|
56
|
-
|
57
|
-
def execute(&block)
|
58
|
-
instance_exec &block
|
59
|
-
end
|
60
52
|
|
61
53
|
def before(&block)
|
62
54
|
@before = yield
|
@@ -150,6 +142,7 @@ module Solea
|
|
150
142
|
{ :before => @before,
|
151
143
|
:description => @description,
|
152
144
|
:example => @example,
|
145
|
+
:filename => (@hypothesis_caller.path if @hypothesis_caller),
|
153
146
|
:lineno => (@hypothesis_caller.lineno if @hypothesis_caller),
|
154
147
|
:exceptions => @exceptions,
|
155
148
|
:notes => @notes,
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: solea
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.9.
|
4
|
+
version: 0.9.31
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Joseph Swetnam
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2013-09-
|
11
|
+
date: 2013-09-15 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
13
|
description: A simple, streamlined unit testing gem.
|
14
14
|
email: jbswetnam@gmail.com
|