Ошибка ConnectionNotEstablished в пользовательском TestTask - PullRequest
0 голосов
/ 28 января 2011

Я пытаюсь написать пользовательскую задачу Rake для выполнения некоторых тестов для класса, размещенного в каталоге lib. Это работает для базовых тестов, не требующих каких-либо моделей, но мне нужно на самом деле тестировать, используя некоторые модели. Это мой первый опыт более расширенного использования рейка, и после преодоления некоторых других препятствий я застрял при получении ошибки ConnectionNotEstablished.

Вот задание на грабли:

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 голосов
/ 28 января 2011

Я наконец выяснил, в чем проблема, я заменил два первых require вызова на:

require 'test_helper'

и добавили каталог test в атрибут libs TestTask:

test.libs << 'test'
...