Я залатал обезьяну after_commit, чтобы она работала с моим тестом, но на Дженкинс - PullRequest
2 голосов
/ 25 сентября 2011

Я использую фильтр after_commit в нескольких местах в моем коде. Чтобы мои тесты на огурцы заработали, мне пришлось использовать патч - http://outofti.me/post/4777884779/test-after-commit-hooks-with-transactional-fixtures

Локально работает как в автономном режиме, так и в режиме автотеста. Я также пытаюсь запустить тесты под Jenkins, но почти все тесты терпят неудачу со следующим сообщением об ошибке.

can't dump File (TypeError)
  /var/lib/jenkins/.rvm/rubies/ree-1.8.7-2011.03/lib/ruby/1.8/monitor.rb:242:in `synchronize'
  ./features/support/after_commit_monkey_patch.rb:20:in `transaction'
  ./features/support/after_commit_monkey_patch.rb:18:in `transaction'

Может ли кто-нибудь помочь мне понять, что происходит? Я запутался, почему один и тот же код работает в одной ситуации, но не в другой. Среды максимально идентичны при использовании RVM и т. Д.

Спасибо, Graeme

Ответы [ 2 ]

1 голос
/ 03 августа 2012

превратил этот патч в гем test after_commit , чтобы найти общий язык для улучшений и добавить тесты, чтобы увидеть, как он работает на всех версиях rails

1 голос
/ 12 октября 2011

После небольшого поиска (и спасибо Энди за подсказку) он не имел ничего общего с патчем обезьяны - он просто сообщал о проблеме.

У меня был установлен кеш для тестирования ...

config.cache_store = nil

Я изменил это на ...

config.cache_store = :dalli_store, { :namespace => "TEST" }

... вместо этого, и теперь он работает без ошибок. Это все еще не объясняет, почему мои тесты работают локально, но не при Дженкинсе с нулевым кешем.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...