Cucumber/JRuby - неинициализированная константа Syntax::Ruby::Set Ошибка при создании средства форматирования: html (NameError)

Я использую структуру JRUBY/Cucumber/Watir, и у меня есть одна конкретная папка функций, которая продолжает выдавать эту ошибку каждый раз, когда я пытаюсь использовать встроенный форматировщик HTML:

    uninitialized constant Syntax::Ruby::Set
    Error creating formatter: html (NameError)
    org/jruby/RubyModule.java:2690:in `const_missing'
    /Users/Casey.Guerrero/.rvm/gems/jruby-1.7.10/gems/syntax-1.2.0/lib/syntax         /lang/ruby.rb:11:in `Ruby'
    /Users/Casey.Guerrero/.rvm/gems/jruby-1.7.10/gems/syntax-1.2.0/lib/syntax  /lang/ruby.rb:8:in `Syntax'
    /Users/Casey.Guerrero/.rvm/gems/jruby-1.7.10/gems/syntax-1.2.0/lib/syntax/lang/ruby.rb:3:in `(root)'
    org/jruby/RubyKernel.java:1083:in `require'
    /Users/Casey.Guerrero/.rvm/rubies/jruby-1.7.10/lib/ruby/shared/rubygems/core_ext/kernel_require.rb:55:in `require'
    /Users/Casey.Guerrero/.rvm/rubies/jruby-1.7.10/lib/ruby/shared/rubygems/core_ext/kernel_require.rb:53:in `require'
    /Users/Casey.Guerrero/.rvm/gems/jruby-1.7.10/gems/syntax-1.2.0/lib/syntax.rb:1:in `(root)'
    /Users/Casey.Guerrero/.rvm/gems/jruby-1.7.10/gems/syntax-1.2.0/lib/syntax.rb:24:in `load'
    /Users/Casey.Guerrero/.rvm/gems/jruby-1.7.10/gems/syntax-1.2.0/lib/syntax/convertors/abstract.rb:16:in `for_syntax'
    /Users/Casey.Guerrero/.rvm/gems/jruby-1.7.10/gems/cucumber-1.3.14/bin/../lib/cucumber/formatter/html.rb:580:in `SnippetExtractor'
    /Users/Casey.Guerrero/.rvm/gems/jruby-1.7.10/gems/cucumber-1.3.14/bin/../lib/cucumber/formatter/html.rb:578:in `Html'
    /Users/Casey.Guerrero/.rvm/gems/jruby-1.7.10/gems/cucumber-1.3.14/bin/../lib/cucumber/formatter/html.rb:8:in `Formatter'
    /Users/Casey.Guerrero/.rvm/gems/jruby-1.7.10/gems/cucumber-1.3.14/bin/../lib/cucumber/formatter/html.rb:7:in `Cucumber'
org/jruby/RubyKernel.java:1083:in `require'
    /Users/Casey.Guerrero/.rvm/rubies/jruby-1.7.10/lib/ruby/shared/rubygems/core_ext/kernel_require.rb:55:in `require'
    /Users/Casey.Guerrero/.rvm/rubies/jruby-1.7.10/lib/ruby/shared/rubygems/core_ext/kernel_require.rb:53:in `require'
    /Users/Casey.Guerrero/.rvm/gems/jruby-1.7.10/gems/cucumber-1.3.14/bin/../lib/cucumber/formatter/html.rb:6:in `(root)'
    /Users/Casey.Guerrero/.rvm/gems/jruby-1.7.10/gems/cucumber-1.3.14/bin/../lib/cucumber/constantize.rb:1:in `(root)'
    /Users/Casey.Guerrero/.rvm/gems/jruby-1.7.10/gems/cucumber-1.3.14/bin/../lib/cucumber/constantize.rb:17:in `constantize'
    org/jruby/RubyArray.java:2409:in `map'
    /Users/Casey.Guerrero/.rvm/gems/jruby-1.7.10/gems/cucumber-1.3.14/bin/../lib/cucumber/cli/configuration.rb:81:in `formatter_class'
    /Users/Casey.Guerrero/.rvm/gems/jruby-1.7.10/gems/cucumber-1.3.14/bin/../lib/cucumber/cli/configuration.rb:182:in `formatters'
    /Users/Casey.Guerrero/.rvm/gems/jruby-1.7.10/gems/cucumber-1.3.14/bin/../lib/cucumber/cli/configuration.rb:178:in `formatters'
    /Users/Casey.Guerrero/.rvm/gems/jruby-1.7.10/gems/cucumber-1.3.14/bin/../lib/cucumber/cli/configuration.rb:76:in `build_tree_walker'
    /Users/Casey.Guerrero/.rvm/gems/jruby-1.7.10/gems/cucumber-1.3.14/bin/../lib/cucumber/runtime.rb:46:in `run!'
    org/jruby/RubyKernel.java:1099:in `load'
    /Users/Casey.Guerrero/.rvm/gems/jruby-1.7.10/gems/cucumber-1.3.14/bin/../lib/cucumber/cli/main.rb:47:in `execute!'
    org/jruby/RubyKernel.java:1119:in `eval'
    /Users/Casey.Guerrero/.rvm/gems/jruby-1.7.10/bin/jruby_executable_hooks:15:in `(root)'

Использование cucumber-1.3.14 и jruby-1.7.10 , хотя ошибка возникает с jruby-1.7.4. Нет форматтеров, включенных в каталог поддержки или упоминаемых где-либо в env.rb.. Не используется rake или что-либо еще, что требует запуска отдельных функций. Странно то, что другие папки функций могут выводить html-отчеты с теми же аргументами команды, что и та, которая не удалась. Пример:

cucumber features/AddText.feature -f html -o report.html -f pretty 

or

cucumber features/AddText.feature --format html --out report.html --format pretty

Любое понимание будет полезно.

ОБНОВЛЕНИЕ:

По какой-то причине удаление драгоценного камня «синтаксис» позволяет запускать функции и создавать отчеты в формате html. У меня сложилось впечатление, что "синтаксис" был зависимостью от "огурца"...


person caseygrr    schedule 31.03.2014    source источник


Ответы (3)


Когда в Cucumber происходит сбой теста, в консоль записывается следующая строка:

# gem install syntax to get syntax highlighting

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

Сделайте 'gem uninstall syntax' или 'sudo gem uninstall syntax', чтобы избежать этой ошибки.

person user3665671    schedule 22.05.2014

Запустите «синтаксис удаления драгоценного камня», это сработает

person Amalka    schedule 02.06.2014

Я знаю, что это немного старая тема, но хотел бы кое-что прояснить.

огурец 1.3.17 и 1.3.18 в зависимости от синтаксиса >= 1.0.0

и в данном случае проблема заключается в синтаксисе 1.2.0, а не во всей версии синтаксиса.

так что мы должны сделать это

удалить синтаксис 1.2.0 и установить синтаксис 1.0.0

sudo gem install syntax -v 1.0.0
person Oxi    schedule 22.01.2015