自定义TestTask中的ConnectionNotEstablished错误

时间:2011-01-28 01:11:20

标签: ruby-on-rails unit-testing activerecord rake

我正在尝试编写一个自定义Rake任务来为放置在lib目录中的类执行一些测试。这适用于不需要任何模型的基本测试,但我需要使用某些模型进行实际测试。这是我第一次尝试更高级的rake使用,经过其他一些障碍后,我一直遇到ConnectionNotEstablished错误。

这是rake任务:

Rake::TestTask.new(:test => 'db:test:prepare') do |test|
  test.libs << 'test/sync'
  test.test_files = Dir['test/sync/*_test.rb']
  test.verbose = true
end

这是引发ConnectionNotEstablished异常的测试:

require 'rubygems'
require 'app/models/city'
require 'foo'
require 'test/unit'

class SyncTest < Test::Unit::TestCase
  @@sync = Foo::Sync.new('test')

  def test_cities
    assert City.all.size == 2 # the exception is raised at this point
    @@sync.cities
    assert City.all.size == 102
  end
end

这是一个实际工作的单元测试:

require 'test_helper'

class CityTest < ActiveSupport::TestCase
  test "the truth" do
    assert City.all.size == 2
  end
end

我尝试使用ActiveSupport::TestCase而不是Test::Unit::TestCase派生我的测试类,但它仍会引发ConnectionNotEstablished错误。我当然做错了什么,有人能找到或说出更好的方法吗?

1 个答案:

答案 0 :(得分:0)

我终于发现了问题所在,我已经将第一个require来电取代了:{/ p>

require 'test_helper'

并将测试目录添加到TestTask的libs属性:

test.libs << 'test'