Как человек может переключить использование транзакционной_фиксуры для одного набора тестов, используя Test :: Unit? - PullRequest
1 голос
/ 29 октября 2010

У меня есть несколько тестов для размышления сфинкса, для которых мне нужно отключить транзакции, чтобы предотвратить блокировки mysql, но при этом я нарушаю множество других ранее написанных тестов, поэтому мне нужно иметь возможность переключать настройки.

Я нашел похожие вопросы относительно rspec , но ни одного для Test :: Unit.

Я пробовал self.use_transactional_fixtures = false, что позволяет пройти тестам сфинкса, но вызываетдругие сломать.Я уверен, что мог бы установить это значение true во всех других тестах, но это также потребовало бы, чтобы все другие тесты включали также фрагмент кода, который является грязным.

Я также пробовал uses_transaction :test_method_name, но этоработает так же, как и ранее упомянутый метод.

Заранее благодарим за любую помощь.

Ответы [ 2 ]

4 голосов
/ 30 октября 2010

Вы должны быть в состоянии установить для use_transactional_fixtures значение false для просто тестов, связанных с сфинксом, которые у вас есть, но оставьте это значение для других ваших тестов.Ключ будет разделять ваши тесты на отдельные тестовые классы.Таким образом, в test_helper.rb вы по-прежнему будете иметь:

self.use_transactional_fixtures = true

Но тогда для других ваших тестов вы будете делать что-то вроде

class PostTest < ActiveSupport::TestCase
  # your normal post tests that require transactional fixtures
end

class SphinxRelatedPostTest < ActiveSupport::TestCase
  self.use_transactional_fixtures = false
  # your other tests
end

Это должно означать, что ваши обычные тесты выполняются с использованиембыстрые фиксации транзакций, но рельсы будут использовать метод DELETE / INSERT по мере необходимости.

1 голос
/ 13 февраля 2016

Вы также можете использовать used_transaction , чтобы отключить их для определенного метода / теста.

class MyTest < ActiveSupport::TestCase

  uses_transaction :test_something
  test "something" do
    "test something like callback"
  end

end
...