Ruby and Rails

Ruby と Ruby on Rails のこと

rake assets:precompile の RSpec を書く

bundle update して開発してカバレッジも 100% でテストも全部通った、さて、本番環境にデプロイ!と思ったら

$ rake assets:precompile
rake aborted!
NoMethodError: undefined method `[]' for nil:NilClass

とコケた。

less-rails-bootstrap が古くて、最新 sprockets と相性が悪かったみたい。

ということで assets:precompile も CI に含める。

$ cat spec/tasks/rake_assets_spec.rb
require 'rails_helper'

describe 'rake assets:precompile' do
  before :all do
    Rails.application.load_tasks
    Rake::Task.define_task(:environment)
  end

  it 'assets:clean' do
    expect{ Rake::Task['assets:clean'].invoke }.not_to raise_exception
  end

  it 'assets:precompile' do
    expect{ Rake::Task['assets:precompile'].invoke }.not_to raise_exception
  end
end