Copy and paste this code into your terminal
DISCLAIMER: You should always review templates before running them. By running the template, you are agreeing to the terms of use.
The contents of this script as show. Any updates will be reflected in the below code and the snippet.
if !defined? RSpec
say "RSpec was not installed. Adding it now..."
gem "rspec-rails" , group: [:development, :test]
run "bundle install"
generate "rspec:install"
end
gem 'shoulda-matchers', group: [:test]
run 'bundle install'
inject_into_file 'spec/rails_helper.rb', after: '# config.filter_gems_from_backtrace("gem name")' + "\nend" do <<~EOF
\n
Shoulda::Matchers.configure do |config|
config.integrate do |with|
with.test_framework :rspec
with.library :rails
end
end
EOF
end
A place where you can thank the author, post problems, give constructive feedback, etc. Be nice!
def shoulda_matchers_config(framework = 1)
f = [nil, "rspec", "minitest"].freeze
<<~EOF
Shoulda::Matchers.configure do |config|
config.integrate do |with|
with.test_framework :#{f[framework]}
with.library :rails
end
end
EOF
end
if !defined? RSpec
say "RSpec was not installed. Adding it now..."
gem "rspec-rails" , group: [:development, :test]
run "bundle install"
generate "rspec:install"
end
gem "shoulda-matchers", group: [:test]
run "bundle install"
answer = ask <<~EOF
Would you like to use shoulda matchers gem with RSpec or Minitest?
[1] - RSpec
[2] - Minitest
EOF
File.open("#{Rails.root}/spec/rails_helper.rb", "a") do |f|
f << shoulda_matchers_config(answer.to_i)
f.close
end
say("✅ Shoulda-matchers is installed successfully, Happy Hacking")
# Skip Test::Unit files rails new app --skip-test-unit