【问题标题】:how do I extend LOAD_PATH for MiniTest?如何为 MiniTest 扩展 LOAD_PATH?
【发布时间】:2013-03-24 00:40:39
【问题描述】:

[旁白:我正在“a concise recipe for installing, configuring and running minitest under autotest or Guard”中慢慢回答我自己的问题]

我的环境:Ruby 2.0。帕德里诺 0.10.7。迷你测试 2.6.2。机架测试 0.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 'test_helper' 替换脆弱的require_relative '../../../test_helper' 需要什么?

【问题讨论】:

    标签: ruby-on-rails padrino minitest


    【解决方案1】:

    你需要添加库:

    Rake::TestTask.new("test:#{folder}") do |test|
      test.pattern = "test/#{folder}/**/*_test.rb"
      test.verbose = true
      test.libs << 'test' # <-- this
    end
    

    或者如果你直接用 ruby​​ 调用它:

    $ ruby -Itest test/test_file.rb
    

    【讨论】:

    • 你真的很厉害!那成功了。 (要加分,请转到此问题第一行中引用的问题,并帮助我弄清楚如何使其与自动测试一起使用。rake padrino test 有效,自动测试运行但未找到任何文件。)跨度>
    猜你喜欢
    • 1970-01-01
    • 2013-09-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-19
    • 2014-11-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多