[余談ですが、「自動テストまたはGuardでミニテストをインストール、構成、および実行するための簡潔なレシピ」で、自分の質問にゆっくりと答えています。]
私の環境:Ruby2.0。パドリーノ0.10.7。ミニテスト2.6.2。RackTest0.6.2。
短い形式:$ LOAD_PATHを拡張してテストディレクトリを含め、require 'test_helper'
テストファイルに簡単に含めることができるようにするための最良の方法は何ですか?
長い形式:
これがサンプルテストファイルです。require_relative "../../../test_helper"
--これには、test_helperに関連するテストファイルを追跡する必要があることに注意してください。
# file: test/models/api/v0/index_test.rb
require_relative '../../../test_helper'
describe 'nobody home' do
it 'fetch fails' do
get "/api/v0/a_uri_that_does_not_exist"
last_response.status.must_equal 404
end
end
テストヘルパーは次のとおりです。
# file: test/test_helper.rb
PADRINO_ENV = 'test' unless defined?(PADRINO_ENV)
require File.expand_path('../../config/boot', __FILE__)
class MiniTest::Unit::TestCase
include Rack::Test::Methods
def app
Demo.tap { |app| }
end
end
そして最後に、それを駆動するrakefile(padrinoによって生成され、を介して呼び出されますpadrino rake test
):
# file: test/test.rake
require 'rake/testtask'
test_tasks = Dir['test/*/'].map { |d| File.basename(d) }
$stderr.puts("=== test_tasks = #{test_tasks}")
test_tasks.each do |folder|
Rake::TestTask.new("test:#{folder}") do |test|
test.pattern = "test/#{folder}/**/*_test.rb"
test.verbose = true
end
end
desc "Run application test suite"
task 'test' => test_tasks.map { |f| "test:#{f}" }
require_relative '../../../test_helper'
だから:もろいものを信頼できて覚えやすいものに置き換えるには何が必要でしょうrequire 'test_helper'
か?