diff --git a/.metrics b/.metrics new file mode 100644 index 0000000..072bf6b --- /dev/null +++ b/.metrics @@ -0,0 +1,7 @@ +MetricFu::Configuration.run do |config| + config.configure_metric(:rcov) do |rcov| + rcov.coverage_file = MetricFu.run_path.join("coverage/rcov/rcov.txt") + rcov.enable + rcov.activate + end +end diff --git a/Gemfile b/Gemfile index afe0b38..463e5c3 100644 --- a/Gemfile +++ b/Gemfile @@ -28,6 +28,7 @@ group :development do gem 'bullet' gem 'better_errors' gem 'quiet_assets' + gem 'metric_fu' end group :development, :test do @@ -47,4 +48,5 @@ group :test do gem 'faker' gem 'capybara-webkit' gem 'shoulda' + gem 'simplecov', require: false end diff --git a/Gemfile.lock b/Gemfile.lock index b1e8b5b..391d20f 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -1,6 +1,7 @@ GEM remote: https://rubygems.org/ specs: + abstract_type (0.0.7) actionmailer (4.2.3) actionpack (= 4.2.3) actionview (= 4.2.3) @@ -36,8 +37,13 @@ GEM minitest (~> 5.1) thread_safe (~> 0.3, >= 0.3.4) tzinfo (~> 1.1) + adamantium (0.2.0) + ice_nine (~> 0.11.0) + memoizable (~> 0.4.0) addressable (2.3.8) arel (6.0.0) + arrayfields (4.9.2) + ast (2.0.0) autoprefixer-rails (5.2.1) execjs json @@ -53,6 +59,8 @@ GEM bullet (4.14.7) activesupport (>= 3.0.0) uniform_notifier (~> 1.9.0) + cane (2.6.2) + parallel capybara (2.4.4) mime-types (>= 1.16) nokogiri (>= 1.3.3) @@ -62,6 +70,18 @@ GEM capybara-webkit (1.6.0) capybara (>= 2.3.0, < 2.5.0) json + chronic (0.10.2) + churn (0.0.35) + chronic (>= 0.2.3) + hirb + json_pure + main + rest-client (>= 1.6.0) + ruby_parser (~> 3.0) + sexp_processor (~> 4.1) + code_analyzer (0.4.5) + sexp_processor + code_metrics (0.1.3) coderay (1.1.0) coffee-rails (4.1.0) coffee-script (>= 2.2.0) @@ -70,12 +90,20 @@ GEM coffee-script-source execjs coffee-script-source (1.9.1.1) + colored (1.2) + concord (0.1.5) + adamantium (~> 0.2.0) + equalizer (~> 0.0.9) database_cleaner (1.4.1) diff-lcs (1.2.5) + docile (1.1.5) + domain_name (0.5.24) + unf (>= 0.0.5, < 1.0.0) dotenv (2.0.2) dotenv-rails (2.0.2) dotenv (= 2.0.2) railties (~> 4.0) + equalizer (0.0.11) erubis (2.7.0) execjs (2.5.2) factory_girl (4.5.0) @@ -85,7 +113,14 @@ GEM railties (>= 3.0.0) faker (1.4.3) i18n (~> 0.5) + fattr (2.2.2) ffi (1.9.10) + flay (2.6.1) + ruby_parser (~> 3.0) + sexp_processor (~> 4.0) + flog (4.3.2) + ruby_parser (~> 3.1, > 3.1.0) + sexp_processor (~> 4.4) formatador (0.2.5) globalid (0.3.5) activesupport (>= 4.1.0) @@ -103,7 +138,11 @@ GEM guard (~> 2.1) guard-compat (~> 1.1) rspec (>= 2.99.0, < 4.0) + hirb (0.7.3) + http-cookie (1.0.2) + domain_name (~> 0.5) i18n (0.7.0) + ice_nine (0.11.1) jbuilder (2.3.1) activesupport (>= 3.0.0, < 5) multi_json (~> 1.2) @@ -112,6 +151,7 @@ GEM railties (>= 4.2.0) thor (>= 0.14, < 2.0) json (1.8.3) + json_pure (1.8.2) launchy (2.4.3) addressable (~> 2.3) listen (3.0.1) @@ -122,17 +162,45 @@ GEM lumberjack (1.0.9) mail (2.6.3) mime-types (>= 1.16, < 3) + main (6.1.0) + arrayfields (>= 4.7.4) + chronic (>= 0.6.2) + fattr (>= 2.2.0) + map (>= 5.1.0) + map (6.5.5) + memoizable (0.4.2) + thread_safe (~> 0.3, >= 0.3.1) method_source (0.8.2) + metric_fu (4.12.0) + cane (~> 2.5, >= 2.5.2) + churn (~> 0.0.35) + code_metrics (~> 0.1) + coderay + flay (~> 2.1, >= 2.0.1) + flog (~> 4.1, >= 4.1.1) + launchy (~> 2.0) + metric_fu-Saikuro (~> 1.1, >= 1.1.3) + multi_json + rails_best_practices (~> 1.14, >= 1.14.3) + redcard + reek (>= 1.3.4, < 3.0) + roodi (~> 3.1) + metric_fu-Saikuro (1.1.3) mime-types (2.6.1) mini_portile (0.6.2) minitest (5.7.0) multi_json (1.11.2) nenv (0.2.0) + netrc (0.10.3) nokogiri (1.6.6.2) mini_portile (~> 0.6.0) notiffany (0.0.6) nenv (~> 0.1) shellany (~> 0.0) + parallel (1.6.0) + parser (2.2.2.6) + ast (>= 1.1, < 3.0) + procto (0.0.2) pry (0.10.1) coderay (~> 1.1.0) method_source (~> 0.8.1) @@ -161,16 +229,38 @@ GEM rails-deprecated_sanitizer (>= 1.0.1) rails-html-sanitizer (1.0.2) loofah (~> 2.0) + rails_best_practices (1.15.7) + activesupport + code_analyzer (>= 0.4.3) + colored + erubis + i18n + json + require_all + ruby-progressbar railties (4.2.3) actionpack (= 4.2.3) activesupport (= 4.2.3) rake (>= 0.8.7) thor (>= 0.18.1, < 2.0) + rainbow (2.0.0) rake (10.4.2) rb-fsevent (0.9.5) rb-inotify (0.9.5) ffi (>= 0.5.0) rdoc (4.2.0) + redcard (1.1.0) + reek (2.2.1) + parser (~> 2.2) + rainbow (~> 2.0) + unparser (~> 0.2.2) + require_all (1.3.2) + rest-client (1.8.0) + http-cookie (>= 1.0.2, < 2.0) + mime-types (>= 1.16, < 3.0) + netrc (~> 0.7) + roodi (3.3.1) + ruby_parser (~> 3.2, >= 3.2.2) rspec (3.3.0) rspec-core (~> 3.3.0) rspec-expectations (~> 3.3.0) @@ -192,6 +282,9 @@ GEM rspec-mocks (~> 3.3.0) rspec-support (~> 3.3.0) rspec-support (3.3.0) + ruby-progressbar (1.7.5) + ruby_parser (3.7.0) + sexp_processor (~> 4.1) sass (3.4.15) sass-rails (5.0.3) railties (>= 4.0.0, < 5.0) @@ -202,6 +295,7 @@ GEM sdoc (0.4.1) json (~> 1.7, >= 1.7.7) rdoc (~> 4.0) + sexp_processor (4.6.0) shellany (0.0.1) shoulda (3.5.0) shoulda-context (~> 1.0, >= 1.0.1) @@ -212,6 +306,11 @@ GEM simple_form (3.1.0) actionpack (~> 4.0) activemodel (~> 4.0) + simplecov (0.10.0) + docile (~> 1.1.0) + json (~> 1.8) + simplecov-html (~> 0.10.0) + simplecov-html (0.10.0) slim (3.0.6) temple (~> 0.7.3) tilt (>= 1.3.3, < 2.1) @@ -241,7 +340,18 @@ GEM uglifier (2.7.1) execjs (>= 0.3.0) json (>= 1.8.0) + unf (0.1.4) + unf_ext + unf_ext (0.0.7.1) uniform_notifier (1.9.0) + unparser (0.2.4) + abstract_type (~> 0.0.7) + adamantium (~> 0.2.0) + concord (~> 0.1.5) + diff-lcs (~> 1.2.5) + equalizer (~> 0.0.9) + parser (~> 2.2.2) + procto (~> 0.0.2) xpath (2.0.0) nokogiri (~> 1.3) @@ -264,6 +374,7 @@ DEPENDENCIES jbuilder (~> 2.0) jquery-rails launchy + metric_fu pry quiet_assets rails (= 4.2.3) @@ -272,6 +383,7 @@ DEPENDENCIES sdoc (~> 0.4.0) shoulda simple_form + simplecov slim-rails spring spring-commands-rspec diff --git a/app/helpers/users_helper.rb b/app/helpers/users_helper.rb deleted file mode 100644 index 2310a24..0000000 --- a/app/helpers/users_helper.rb +++ /dev/null @@ -1,2 +0,0 @@ -module UsersHelper -end diff --git a/spec/controllers/users_controller_spec.rb b/spec/controllers/users_controller_spec.rb index 9ab55d5..fc922c2 100644 --- a/spec/controllers/users_controller_spec.rb +++ b/spec/controllers/users_controller_spec.rb @@ -1,6 +1,20 @@ require 'rails_helper' describe UsersController, type: :controller do + describe '#new' do + it 'should render :new' do + get :new + + expect(response).to render_template(:new) + end + + it 'should assign new User to @user' do + get :new + + expect(assigns(:user)).to be_a_new(User) + end + end + describe '#create' do let(:data) do { diff --git a/spec/rails_helper.rb b/spec/rails_helper.rb index ea1bb0c..c0f2e41 100644 --- a/spec/rails_helper.rb +++ b/spec/rails_helper.rb @@ -3,7 +3,10 @@ ENV['RAILS_ENV'] ||= 'test' require File.expand_path('../../config/environment', __FILE__) # Prevent database truncation if the environment is production -abort("The Rails environment is running in production mode!") if Rails.env.production? +if Rails.env.production? + abort("The Rails environment is running in production mode!") +end + require 'spec_helper' require 'rspec/rails' require 'shoulda/matchers' diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb index b52ab21..c081335 100644 --- a/spec/spec_helper.rb +++ b/spec/spec_helper.rb @@ -1,3 +1,9 @@ +require 'simplecov' +require 'metric_fu/logger' +require 'metric_fu/metrics/rcov/simplecov_formatter' + +require 'support/simplecov' + RSpec.configure do |config| config.expect_with :rspec do |expectations| expectations.include_chain_clauses_in_custom_matcher_descriptions = true diff --git a/spec/support/simplecov.rb b/spec/support/simplecov.rb new file mode 100644 index 0000000..58409cb --- /dev/null +++ b/spec/support/simplecov.rb @@ -0,0 +1,5 @@ +SimpleCov.formatter = SimpleCov::Formatter::MultiFormatter[ + SimpleCov::Formatter::HTMLFormatter, + SimpleCov::Formatter::MetricFu +] +SimpleCov.start