hexx-suit 0.2.2 → 1.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.coveralls.yml +1 -0
- data/.travis.yml +4 -9
- data/Gemfile +5 -6
- data/README.md +35 -26
- data/Rakefile +5 -6
- data/{lib/hexx/suit/install → config}/metrics/simplecov.yml +0 -0
- data/hexx-suit.gemspec +1 -6
- data/lib/hexx/suit/install/Guardfile +14 -5
- data/lib/hexx/suit/install/_rubocop.yml +1 -0
- data/lib/hexx/suit/install/_yardopts +1 -0
- data/lib/hexx/suit/install.rb +15 -46
- data/lib/hexx/suit/metrics/metric_fu/base.rb +15 -7
- data/lib/hexx/suit/metrics/metric_fu/cane.rb +1 -1
- data/lib/hexx/suit/metrics/metric_fu/churn.rb +1 -1
- data/lib/hexx/suit/metrics/metric_fu/flay.rb +1 -1
- data/lib/hexx/suit/metrics/metric_fu/reek.rb +1 -1
- data/lib/hexx/suit/metrics/metric_fu/roodi.rb +1 -1
- data/lib/hexx/suit/metrics/metric_fu/saikuro.rb +1 -1
- data/lib/hexx/suit/metrics/metric_fu.rb +1 -1
- data/lib/hexx/suit/metrics/rubocop.rb +1 -1
- data/lib/hexx/suit/metrics/yardstick.rb +1 -1
- data/lib/hexx/suit/metrics.rb +0 -3
- data/lib/hexx/suit/version.rb +7 -1
- data/lib/hexx/suit.rb +14 -67
- data/lib/hexx-suit.rb +10 -14
- data/lib/tasks/check/coverage.rake +2 -2
- data/lib/tasks/check/fu.rake +1 -1
- data/lib/tasks/check/inch.rake +1 -1
- data/lib/tasks/check/rubocop.rake +1 -1
- data/lib/tasks/check/yardstick.rake +1 -1
- data/lib/tasks/check.rake +9 -11
- data/lib/tasks/debug.rake +1 -1
- data/lib/tasks/test.rake +1 -1
- data/spec/spec_helper.rb +8 -6
- data/spec/support/config/tasks.rb +1 -1
- data/spec/tests/bin/install_spec.rb +22 -25
- data/spec/tests/lib/install_spec.rb +0 -4
- data/spec/tests/suit_spec.rb +7 -55
- data/spec/tests/tasks/check/coverage/display_spec.rb +2 -2
- data/spec/tests/tasks/check/coverage/run_spec.rb +2 -2
- data/spec/tests/tasks/check/display_spec.rb +0 -6
- data/spec/tests/tasks/check/fu/display_spec.rb +1 -1
- data/spec/tests/tasks/check/fu/run_spec.rb +1 -1
- data/spec/tests/tasks/check/inch_spec.rb +1 -1
- data/spec/tests/tasks/check/rubocop/display_spec.rb +1 -1
- data/spec/tests/tasks/check/rubocop/run_spec.rb +1 -1
- data/spec/tests/tasks/check/run_spec.rb +0 -6
- data/spec/tests/tasks/check/yardstick/display_spec.rb +1 -1
- data/spec/tests/tasks/check_spec.rb +0 -12
- data/spec/tests/tasks/debug_spec.rb +1 -1
- metadata +6 -103
- data/config/initializers/focus.rb +0 -5
- data/config/initializers/garbage_collection.rb +0 -11
- data/config/initializers/i18n.rb +0 -3
- data/config/initializers/random_order.rb +0 -4
- data/config/initializers/rspec.rb +0 -11
- data/lib/hexx/suit/install/Rakefile +0 -17
- data/lib/hexx/suit/install/_rspec +0 -2
- data/lib/hexx/suit/install/metrics/pippi.yml +0 -3
- data/lib/hexx/suit/metrics/base.rb +0 -88
- data/lib/hexx/suit/metrics/pippi.rb +0 -89
- data/lib/hexx/suit/metrics/simplecov.rb +0 -119
- data/lib/hexx/suit/utils/system.rb +0 -66
- data/lib/tasks/check/pippi.rake +0 -33
- data/spec/tests/lib/metrics/pippi_spec.rb +0 -104
- data/spec/tests/lib/metrics/simplecov_spec.rb +0 -102
- data/spec/tests/lib/utils/system_spec.rb +0 -85
- data/spec/tests/tasks/check/pippi/display_spec.rb +0 -48
- data/spec/tests/tasks/check/pippi/run_spec.rb +0 -26
- data/spec/tests/tasks/check/pippi_spec.rb +0 -27
- data/spec/tests/tasks/test_spec.rb +0 -21
data/config/initializers/i18n.rb
DELETED
@@ -1,17 +0,0 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
begin
|
3
|
-
require "bundler/setup"
|
4
|
-
rescue LoadError
|
5
|
-
puts "You must `gem install bundler` and `bundle install` to run rake tasks"
|
6
|
-
exit
|
7
|
-
end
|
8
|
-
|
9
|
-
# Loads bundler tasks
|
10
|
-
Bundler::GemHelper.install_tasks
|
11
|
-
|
12
|
-
# Loads the Hexx::Suit and its tasks
|
13
|
-
require "hexx-suit"
|
14
|
-
Hexx::Suit.install_tasks
|
15
|
-
|
16
|
-
# Sets the Hexx::Suit :test task to default
|
17
|
-
task default: :test
|
@@ -1,88 +0,0 @@
|
|
1
|
-
require "yaml"
|
2
|
-
|
3
|
-
module Hexx
|
4
|
-
|
5
|
-
module Suit
|
6
|
-
|
7
|
-
module Metrics
|
8
|
-
|
9
|
-
# Base class for metrics configurators
|
10
|
-
#
|
11
|
-
# @api private
|
12
|
-
class Base
|
13
|
-
|
14
|
-
# The utility class for sending commands to the system
|
15
|
-
SYSTEM = Utils::System
|
16
|
-
|
17
|
-
# Loads metric settings and configures the current metric
|
18
|
-
#
|
19
|
-
# @return [Hexx::Suit::Metrics]
|
20
|
-
# the configured metric object
|
21
|
-
def self.load
|
22
|
-
send(:new).load
|
23
|
-
end
|
24
|
-
|
25
|
-
# Configures and runs the current metric
|
26
|
-
#
|
27
|
-
# @return (see #run)
|
28
|
-
def self.run
|
29
|
-
load.run
|
30
|
-
end
|
31
|
-
|
32
|
-
# Loads the configuration file and configures the metric
|
33
|
-
#
|
34
|
-
# @return [self]
|
35
|
-
#
|
36
|
-
# @api private
|
37
|
-
def load
|
38
|
-
self
|
39
|
-
end
|
40
|
-
|
41
|
-
# Runs the metric
|
42
|
-
#
|
43
|
-
# @abstract
|
44
|
-
#
|
45
|
-
# @return [undefined]
|
46
|
-
#
|
47
|
-
# @api private
|
48
|
-
def run
|
49
|
-
end
|
50
|
-
|
51
|
-
# @note
|
52
|
-
# The class has a private constructor.
|
53
|
-
# Use methods {.load} or {.run}.
|
54
|
-
private_class_method :new
|
55
|
-
|
56
|
-
private
|
57
|
-
|
58
|
-
# Extracts a hash of settings from the current file
|
59
|
-
#
|
60
|
-
# @return [Hash]
|
61
|
-
#
|
62
|
-
# @api private
|
63
|
-
def settings
|
64
|
-
@settings ||= file ? ::YAML.load_file(file) : {}
|
65
|
-
end
|
66
|
-
|
67
|
-
# Returns the name of the settings file
|
68
|
-
#
|
69
|
-
# @return [String]
|
70
|
-
# when the file is present in the config/metrics folder
|
71
|
-
# @return [nil]
|
72
|
-
# when the file is absent in the config/metrics folder
|
73
|
-
#
|
74
|
-
# @api private
|
75
|
-
def file
|
76
|
-
@file ||= Dir["config/metrics/#{ name }.yml"].first
|
77
|
-
end
|
78
|
-
|
79
|
-
# The name of the current metric
|
80
|
-
#
|
81
|
-
# @abstract
|
82
|
-
#
|
83
|
-
# @return [Symbol]
|
84
|
-
attr_reader :name
|
85
|
-
end
|
86
|
-
end
|
87
|
-
end
|
88
|
-
end
|
@@ -1,89 +0,0 @@
|
|
1
|
-
module Hexx
|
2
|
-
module Suit
|
3
|
-
module Metrics
|
4
|
-
|
5
|
-
# Prepares and runs pippi environment
|
6
|
-
class Pippi < Base
|
7
|
-
|
8
|
-
# Constructs the object and loads 'pippi' gem dependency
|
9
|
-
#
|
10
|
-
# Loads pippi settings, prepares the log file,
|
11
|
-
# and sets ENV variables for the pippi rake tasks.
|
12
|
-
#
|
13
|
-
# @return [Hexx::Suit::Metrics::MetricFu]
|
14
|
-
#
|
15
|
-
# @api private
|
16
|
-
def self.new
|
17
|
-
require "pippi"
|
18
|
-
super
|
19
|
-
end
|
20
|
-
|
21
|
-
# @!scope class
|
22
|
-
# Prepares log file and sets ENV variables for pippi rake tasks
|
23
|
-
#
|
24
|
-
# @return [undefined]
|
25
|
-
def load
|
26
|
-
prepare_output
|
27
|
-
set_environment
|
28
|
-
|
29
|
-
super
|
30
|
-
end
|
31
|
-
|
32
|
-
# @!scope class
|
33
|
-
# Starts pippi AutoRunner
|
34
|
-
#
|
35
|
-
# @return [undefined]
|
36
|
-
def run
|
37
|
-
::Pippi::AutoRunner.new checkset: checkset, io: io
|
38
|
-
end
|
39
|
-
|
40
|
-
private
|
41
|
-
|
42
|
-
# pippi metric definitions
|
43
|
-
|
44
|
-
def name
|
45
|
-
:pippi
|
46
|
-
end
|
47
|
-
|
48
|
-
def default_options
|
49
|
-
{
|
50
|
-
"checkset" => "basic",
|
51
|
-
"output" => "tmp/pippi/output.log"
|
52
|
-
}
|
53
|
-
end
|
54
|
-
|
55
|
-
# operations
|
56
|
-
|
57
|
-
def prepare_output
|
58
|
-
SYSTEM.call %(
|
59
|
-
mkdir #{ File.dirname(output) } -p
|
60
|
-
touch #{ output }
|
61
|
-
)
|
62
|
-
end
|
63
|
-
|
64
|
-
def set_environment
|
65
|
-
ENV["USE_PIPPI"] = "true"
|
66
|
-
ENV["PIPPI_OUTPUT"] = output
|
67
|
-
end
|
68
|
-
|
69
|
-
# helpers
|
70
|
-
|
71
|
-
def options
|
72
|
-
@options ||= default_options.merge settings.to_hash
|
73
|
-
end
|
74
|
-
|
75
|
-
def output
|
76
|
-
@output ||= options["output"]
|
77
|
-
end
|
78
|
-
|
79
|
-
def io
|
80
|
-
::File.open(output, "w")
|
81
|
-
end
|
82
|
-
|
83
|
-
def checkset
|
84
|
-
options["checkset"]
|
85
|
-
end
|
86
|
-
end
|
87
|
-
end
|
88
|
-
end
|
89
|
-
end
|
@@ -1,119 +0,0 @@
|
|
1
|
-
module Hexx
|
2
|
-
module Suit
|
3
|
-
module Metrics
|
4
|
-
|
5
|
-
# Prepares and runs pippi environment
|
6
|
-
#
|
7
|
-
# @api private
|
8
|
-
class SimpleCov < Base
|
9
|
-
|
10
|
-
# Loads the simplecov and coveralls gem
|
11
|
-
#
|
12
|
-
# @return [Hexx::Suit::Metrics::SimpleCov]
|
13
|
-
#
|
14
|
-
# @api private
|
15
|
-
def self.new
|
16
|
-
%w(simplecov coveralls).each { |gem| require gem }
|
17
|
-
super
|
18
|
-
end
|
19
|
-
|
20
|
-
# @!scope class
|
21
|
-
# Configures the SimpleCov metric
|
22
|
-
#
|
23
|
-
# @return [self]
|
24
|
-
def load
|
25
|
-
set_environment
|
26
|
-
configure_metric
|
27
|
-
|
28
|
-
super
|
29
|
-
end
|
30
|
-
|
31
|
-
# @!scope class
|
32
|
-
# Configures simplecov from the simplecov.yml file and starts
|
33
|
-
# the metric
|
34
|
-
#
|
35
|
-
# @return [undefined]
|
36
|
-
def run
|
37
|
-
metric.start
|
38
|
-
end
|
39
|
-
|
40
|
-
private
|
41
|
-
|
42
|
-
# simplecov metric definitions
|
43
|
-
|
44
|
-
def name
|
45
|
-
"simplecov"
|
46
|
-
end
|
47
|
-
|
48
|
-
def metric
|
49
|
-
::SimpleCov
|
50
|
-
end
|
51
|
-
|
52
|
-
def default_options
|
53
|
-
{
|
54
|
-
"output" => "tmp/coverage",
|
55
|
-
"filters" => ["spec/", "config/"],
|
56
|
-
"groups" => {
|
57
|
-
"Libraries" => "lib/",
|
58
|
-
"Application" => "app/"
|
59
|
-
}
|
60
|
-
}
|
61
|
-
end
|
62
|
-
|
63
|
-
# operations
|
64
|
-
|
65
|
-
def set_environment
|
66
|
-
ENV["USE_SIMPLECOV"] = "true"
|
67
|
-
ENV["SIMPLECOV_OUTPUT"] = "#{ output }/index.html"
|
68
|
-
end
|
69
|
-
|
70
|
-
def configure_metric
|
71
|
-
add_filters
|
72
|
-
add_groups
|
73
|
-
set_formatters
|
74
|
-
set_output
|
75
|
-
end
|
76
|
-
|
77
|
-
def add_filters
|
78
|
-
filters.each(&metric.method(:add_filter))
|
79
|
-
end
|
80
|
-
|
81
|
-
def add_groups
|
82
|
-
groups.each { |key, value| metric.add_group(key, value) }
|
83
|
-
end
|
84
|
-
|
85
|
-
def set_formatters
|
86
|
-
metric.formatter = metric::Formatter::MultiFormatter[
|
87
|
-
metric::Formatter::HTMLFormatter,
|
88
|
-
::Coveralls::SimpleCov::Formatter
|
89
|
-
]
|
90
|
-
end
|
91
|
-
|
92
|
-
def set_output
|
93
|
-
metric.coverage_dir output
|
94
|
-
end
|
95
|
-
|
96
|
-
# helpers
|
97
|
-
|
98
|
-
def options
|
99
|
-
@options ||= default_options.merge settings.to_hash
|
100
|
-
end
|
101
|
-
|
102
|
-
def output
|
103
|
-
@output = options["output"]
|
104
|
-
end
|
105
|
-
|
106
|
-
def filters
|
107
|
-
@filters ||= Array(options["filters"]).flatten.map(&:to_s)
|
108
|
-
end
|
109
|
-
|
110
|
-
def groups
|
111
|
-
@groups ||= begin
|
112
|
-
list = options["groups"]
|
113
|
-
list.is_a?(Hash) ? list : {}
|
114
|
-
end
|
115
|
-
end
|
116
|
-
end
|
117
|
-
end
|
118
|
-
end
|
119
|
-
end
|
@@ -1,66 +0,0 @@
|
|
1
|
-
module Hexx
|
2
|
-
module Suit
|
3
|
-
|
4
|
-
# Contains utilitity classes
|
5
|
-
module Utils
|
6
|
-
|
7
|
-
# The utility sends multiline string to system
|
8
|
-
#
|
9
|
-
# Allows stubbing system calls in specifications.
|
10
|
-
#
|
11
|
-
# @example
|
12
|
-
# System.call %(
|
13
|
-
# inch --pedantic
|
14
|
-
# rubocop
|
15
|
-
# )
|
16
|
-
#
|
17
|
-
# @api private
|
18
|
-
class System < String
|
19
|
-
|
20
|
-
# Initializes multiline text to be sent to system
|
21
|
-
#
|
22
|
-
# Removes repetitive spaces from itself
|
23
|
-
#
|
24
|
-
# @param [#to_s] text
|
25
|
-
# Multiline text to be sent to system
|
26
|
-
#
|
27
|
-
# @return [undefined]
|
28
|
-
def initialize(text)
|
29
|
-
super
|
30
|
-
strip!
|
31
|
-
gsub!(/ {2,}/, " ")
|
32
|
-
end
|
33
|
-
|
34
|
-
# Returns non-empty lines without trailing spaces
|
35
|
-
#
|
36
|
-
# @return [Array<String>]
|
37
|
-
def lines
|
38
|
-
Array(super).map(&:strip).reject(&:empty?)
|
39
|
-
end
|
40
|
-
|
41
|
-
# Sends itself to system line by line
|
42
|
-
#
|
43
|
-
# @return [self]
|
44
|
-
def call
|
45
|
-
lines.each(&method(:system))
|
46
|
-
|
47
|
-
self
|
48
|
-
end
|
49
|
-
|
50
|
-
# Sends multiline string to system
|
51
|
-
#
|
52
|
-
# @example (see Hexx::Suit::Utils::System)
|
53
|
-
#
|
54
|
-
# @param (see #initialize)
|
55
|
-
#
|
56
|
-
# @return [Hexx::Suit::Utils::System]
|
57
|
-
# utility object (allows chaining)
|
58
|
-
def self.call(text)
|
59
|
-
new(text).call
|
60
|
-
|
61
|
-
self
|
62
|
-
end
|
63
|
-
end # class System
|
64
|
-
end # module Utils
|
65
|
-
end # module Suit
|
66
|
-
end # module Hexx
|
data/lib/tasks/check/pippi.rake
DELETED
@@ -1,33 +0,0 @@
|
|
1
|
-
namespace :check do
|
2
|
-
|
3
|
-
namespace :pippi do
|
4
|
-
|
5
|
-
metric = Hexx::Suit::Metrics::Pippi
|
6
|
-
caller = Hexx::Suit::Utils::System
|
7
|
-
output = -> { ENV.fetch("PIPPI_OUTPUT") { "log/pippi.log" } }
|
8
|
-
|
9
|
-
# Loads settings for pippi runtime metric from the '.hexx-suit.yml'
|
10
|
-
task :configure do
|
11
|
-
metric.load
|
12
|
-
end
|
13
|
-
|
14
|
-
desc "Runs tests with pippi runtime metric"
|
15
|
-
task run: :configure do
|
16
|
-
puts "******* STARTING METRIC pippi"
|
17
|
-
caller.call "rake test"
|
18
|
-
puts "see pippi results in #{ output.call }"
|
19
|
-
puts "******* ENDING METRIC pippi"
|
20
|
-
end
|
21
|
-
|
22
|
-
desc "Displays results of pippi last run"
|
23
|
-
task display: :configure do
|
24
|
-
puts "******* DISPLAYING METRIC pippi"
|
25
|
-
caller.call "cat #{ output.call }"
|
26
|
-
puts "******* ENDING METRIC pippi"
|
27
|
-
end
|
28
|
-
end
|
29
|
-
|
30
|
-
desc "Runs tests with pippi runtime metric and displays the results"
|
31
|
-
task pippi: %w(pippi:run pippi:display)
|
32
|
-
|
33
|
-
end if USE_PIPPI_METRIC
|
@@ -1,104 +0,0 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
require "spec_helper"
|
3
|
-
|
4
|
-
describe Hexx::Suit::Metrics::Pippi, :sandbox do
|
5
|
-
|
6
|
-
require "pippi"
|
7
|
-
|
8
|
-
shared_context "without pippi.yml" do
|
9
|
-
|
10
|
-
let(:options) do
|
11
|
-
{ "checkset" => "basic", "output" => "tmp/pippi/output.log" }
|
12
|
-
end
|
13
|
-
end
|
14
|
-
|
15
|
-
shared_context "with pippi.yml" do
|
16
|
-
|
17
|
-
let(:options) do
|
18
|
-
{ "checkset" => "training", "output" => "custom/pippi.log" }
|
19
|
-
end
|
20
|
-
|
21
|
-
before { prepare_settings options, "config/metrics/pippi.yml" }
|
22
|
-
end
|
23
|
-
|
24
|
-
shared_examples "environments loader" do
|
25
|
-
|
26
|
-
before { ENV["USE_PIPPI"] = nil }
|
27
|
-
before { ENV["PIPPI_OUTPUT"] = nil }
|
28
|
-
|
29
|
-
it "[sets USE_PIPPI]" do
|
30
|
-
expect { subject }.to change { ENV["USE_PIPPI"] }.to "true"
|
31
|
-
end
|
32
|
-
|
33
|
-
it "[sets PIPPI_OUTPUT]" do
|
34
|
-
expect { subject }.to change { ENV["PIPPI_OUTPUT"] }.to options["output"]
|
35
|
-
end
|
36
|
-
end
|
37
|
-
|
38
|
-
shared_examples "file creator" do
|
39
|
-
|
40
|
-
before { subject }
|
41
|
-
|
42
|
-
it "[prepares the output file]" do
|
43
|
-
expect(options["output"]).to be_present_in_sandbox
|
44
|
-
end
|
45
|
-
end
|
46
|
-
|
47
|
-
shared_examples "metric runner" do
|
48
|
-
|
49
|
-
after { subject }
|
50
|
-
|
51
|
-
it "[runs the metric]" do
|
52
|
-
expect(::Pippi::AutoRunner).to receive(:new) do |settings|
|
53
|
-
expect(settings[:checkset]).to eq options["checkset"]
|
54
|
-
expect(settings[:io]).to be_kind_of ::File
|
55
|
-
expect(settings[:io].path).to eq options["output"]
|
56
|
-
end
|
57
|
-
end
|
58
|
-
end
|
59
|
-
|
60
|
-
describe ".load" do
|
61
|
-
|
62
|
-
subject { try_in_sandbox { described_class.load } }
|
63
|
-
|
64
|
-
context "when pippi.yml is absent" do
|
65
|
-
|
66
|
-
include_context "without pippi.yml"
|
67
|
-
|
68
|
-
it_behaves_like "environments loader"
|
69
|
-
it_behaves_like "file creator"
|
70
|
-
end
|
71
|
-
|
72
|
-
context "when pippi.yml is present" do
|
73
|
-
|
74
|
-
include_context "with pippi.yml"
|
75
|
-
|
76
|
-
it_behaves_like "environments loader"
|
77
|
-
it_behaves_like "file creator"
|
78
|
-
end
|
79
|
-
end
|
80
|
-
|
81
|
-
describe ".run" do
|
82
|
-
|
83
|
-
subject { try_in_sandbox { described_class.run } }
|
84
|
-
|
85
|
-
context "when pippi.yml is absent" do
|
86
|
-
|
87
|
-
include_context "with pippi.yml"
|
88
|
-
|
89
|
-
it_behaves_like "environments loader"
|
90
|
-
it_behaves_like "file creator"
|
91
|
-
it_behaves_like "metric runner"
|
92
|
-
end
|
93
|
-
|
94
|
-
context "when pippi.yml is present" do
|
95
|
-
|
96
|
-
include_context "without pippi.yml"
|
97
|
-
|
98
|
-
it_behaves_like "environments loader"
|
99
|
-
it_behaves_like "file creator"
|
100
|
-
it_behaves_like "metric runner"
|
101
|
-
end
|
102
|
-
end
|
103
|
-
|
104
|
-
end if USE_PIPPI_METRIC
|
@@ -1,102 +0,0 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
require "spec_helper"
|
3
|
-
require "simplecov"
|
4
|
-
|
5
|
-
describe Hexx::Suit::Metrics::SimpleCov, :sandbox do
|
6
|
-
|
7
|
-
shared_context "without simplecov.yml" do
|
8
|
-
|
9
|
-
let(:options) do
|
10
|
-
{
|
11
|
-
"output" => "tmp/coverage",
|
12
|
-
"filters" => ["spec/", "config/"],
|
13
|
-
"groups" => {
|
14
|
-
"Libraries" => "lib/",
|
15
|
-
"Application" => "app/"
|
16
|
-
}
|
17
|
-
}
|
18
|
-
end
|
19
|
-
end
|
20
|
-
|
21
|
-
shared_context "with simplecov.yml" do
|
22
|
-
|
23
|
-
let(:options) do
|
24
|
-
{
|
25
|
-
"output" => "custom",
|
26
|
-
"filters" => ["custom/"],
|
27
|
-
"groups" => { "Custom" => "custom/" }
|
28
|
-
}
|
29
|
-
end
|
30
|
-
|
31
|
-
before { prepare_settings options, "config/metrics/simplecov.yml" }
|
32
|
-
end
|
33
|
-
|
34
|
-
shared_examples "environmets setter" do
|
35
|
-
|
36
|
-
before do
|
37
|
-
ENV["USE_SIMPLECOV"] = nil
|
38
|
-
ENV["SIMPLECOV_OUTPUT"] = nil
|
39
|
-
end
|
40
|
-
|
41
|
-
it "[sets USE_SIMPLECOV]" do
|
42
|
-
expect { subject }
|
43
|
-
.to change { ENV["USE_SIMPLECOV"] }
|
44
|
-
.to "true"
|
45
|
-
end
|
46
|
-
|
47
|
-
it "[sets SIMPLECOV_OUTPUT]" do
|
48
|
-
expect { subject }
|
49
|
-
.to change { ENV["SIMPLECOV_OUTPUT"] }
|
50
|
-
.to "#{ options['output'] }/index.html"
|
51
|
-
end
|
52
|
-
end
|
53
|
-
|
54
|
-
shared_examples "metric loader" do
|
55
|
-
|
56
|
-
after { subject }
|
57
|
-
|
58
|
-
it "starts the metric" do
|
59
|
-
expect(::SimpleCov).to receive(:start)
|
60
|
-
end
|
61
|
-
end
|
62
|
-
|
63
|
-
describe ".load" do
|
64
|
-
|
65
|
-
subject { try_in_sandbox { described_class.load } }
|
66
|
-
|
67
|
-
context "without simplecov.yml" do
|
68
|
-
|
69
|
-
include_context "without simplecov.yml"
|
70
|
-
|
71
|
-
it_behaves_like "environmets setter"
|
72
|
-
end
|
73
|
-
|
74
|
-
context "with simplecov.yml" do
|
75
|
-
|
76
|
-
include_context "with simplecov.yml"
|
77
|
-
|
78
|
-
it_behaves_like "environmets setter"
|
79
|
-
end
|
80
|
-
end
|
81
|
-
|
82
|
-
describe ".run" do
|
83
|
-
|
84
|
-
subject { try_in_sandbox { described_class.run } }
|
85
|
-
|
86
|
-
context "without simplecov.yml" do
|
87
|
-
|
88
|
-
include_context "without simplecov.yml"
|
89
|
-
|
90
|
-
it_behaves_like "environmets setter"
|
91
|
-
it_behaves_like "metric loader"
|
92
|
-
end
|
93
|
-
|
94
|
-
context "with simplecov.yml" do
|
95
|
-
|
96
|
-
include_context "without simplecov.yml"
|
97
|
-
|
98
|
-
it_behaves_like "environmets setter"
|
99
|
-
it_behaves_like "metric loader"
|
100
|
-
end
|
101
|
-
end
|
102
|
-
end
|