1
[另:我在「a concise recipe for installing, configuring and running minitest under autotest or Guard」中慢慢回答我自己的問題]如何擴展MiniTest的LOAD_PATH?
我的環境:Ruby 2.0。 Padrino 0.10.7。 Minitest 2.6.2。 RackTest 0.6.2。
簡寫:什麼是擴展$ LOAD_PATH以包含我的測試目錄的最佳方式,所以我可以在我的測試文件中簡單地使用require 'test_helper'
?
長表格:
下面是一個示例測試文件。請注意0- 這需要跟蹤相對於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
最後,驅動它的Rake文件(由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 'test_helper'
取代脆弱的require_relative '../../../test_helper'
?
實實在在你rocketh!那就是訣竅。 (對於額外的問題,請回到本問題第一行中引用的問題,並幫助我弄清楚如何使它與自動測試一起工作。'rake padrino test'工作,自動測試運行,但沒有找到任何文件。) – 2013-03-23 20:46:12