2012-07-05 2 views
0

Мы пытаемся использовать Rake для запуска тестов на огурцы на нашем сервере сборки. Все было отлично работает в течение нескольких недель, но вчера вечером мы начали видеть ошибкуОгурец :: Рейк :: Задачи без использования рубина --1.9?

C:\jruby-1.6.7\bin\jruby.exe --1.9 -e $stdout.sync=true;$stderr.sync=true;load($0=ARGV.shift) C:\jruby-1.6.7\bin\rake manual_tests 
(in <local_folder_name>) 
C:/jruby-1.6.7/bin/jruby -I "C:/jruby-1.6.7/lib/ruby/gems/1.8/gems/cucumber-1.2.1/lib;lib" "C:/jruby-1.6.7/lib/ruby/gems/1.8/gems/cucumber-1.2.1/bin/cucumber" --dry-run --format html --out results/manual-tests.html --format progress --tags [email protected] --tags @manual 
C:/jruby-1.6.7/lib/ruby/gems/1.8/gems/factory_girl-3.1.0/lib/factory_girl/null_factory.rb:9: syntax error, unexpected ':' 

delegate :defined_traits, :callbacks, :attributes, :constructor, to: :definition 
                   ^(SyntaxError) 

При дальнейшем исследовании мы обнаружили, что это новый хэш-синтаксис для Ruby, --1.9, и все другие сайты предполагают модернизацию или указывая в jruby на использование --1.9. Однако мы уже установили все возможные варианты использования Ruby 1.9, и все же мы все еще видим эту ошибку.

Чтобы сделать это еще более странным, мы также используем Rake для запуска некоторых модульных тестов rspec, используя ту же базу кода, только тесты разные. Он отлично работает в rspec, заставляя нас задаться вопросом, связана ли ошибка с Cucumber :: Rake :: Задачи, не признающие, что мы находимся в Ruby 1.9

Здесь приведен аргумент командной строки, который вы можете четко определить см работает --1.9:

C:\jruby-1.6.7\bin\jruby.exe --1.9 -e $stdout.sync=true;$stderr.sync=true;load($0=ARGV.shift) C:\jruby-1.6.7\bin\rake manual_tests 
(in <local_folder_name>) 
C:/jruby-1.6.7/bin/jruby -I "C:/jruby-1.6.7/lib/ruby/gems/1.8/gems/cucumber-1.2.1/lib;lib" "C:/jruby-1.6.7/lib/ruby/gems/1.8/gems/cucumber-1.2.1/bin/cucumber" --dry-run --format html --out results/manual-tests.html --format progress --tags [email protected] --tags @manual 

Если у кого есть какие-либо идеи о том, как это исправить, или даже, почему он просто начинает происходить без каких-либо видимых соответствующих изменений, мы были бы очень благодарны.

Спасибо, Matt

ответ

0

Мы наконец-то решить эту проблему, и, как ожидается, это было то, что в то время как JRuby и огурца были настроены использовать --1.9, когда мы пытались запустить его через грабли, он все еще пытался использовать - 1,8. Для того, чтобы решить эту проблему, мы создали переменную среды для граблей для сборки:

JRUBY_OPTS=--1.9 

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

Смежные вопросы