solea 0.9.30 → 0.9.31
Sign up to get free protection for your applications and to get access to all the features.
- 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
|