henry_flower: A melancholy wolf (Default)
henry_flower ([personal profile] henry_flower) wrote2011-06-16 10:56 pm

The House Requires Painting

Из-за вот этого гениального коммита, у меня в проектах наебнулся вызов rake test, после того, как я обновился до rake 0.9.2.

Например, в моих тестах было:

# test/test_foo.rb
class TestFetch < MiniTest::Unit::TestCase
  CMD = cmd('external_program')

  def test_empty_url
    # somehow CMD was used
  end

  ...
end

где cmd проверяет текущую директори, и если она не some-project/test, то изменяет ее на, и возвращает правильный путь к external_program относительно измененной директори.

И таких файлов было много (test/test_foo.rb, test/test_bar.rb, etc) где все начиналось одинаково.

И все блядь работало.

Теперь, rake в своей Rake::TestTask получает список файлов и посредством require загружает (не запускает!) каждый набор тестов. После 1-го файла test/test_bar.rb, который уже сменил нужную ему директорию на some-project/test, rake пытается риквайнуть test/test_foo.rb и все ломается, потому что файла some-project/test/test/test_foo.rb разумеется не существует.

Пришлось везде менять на:

# test/test_foo.rb
class TestFetch < MiniTest::Unit::TestCase
  def setup
    @cmd = cmd('external_program')
  end

  ...
end