Огурец "- формат прогресса" не работает - PullRequest
2 голосов
/ 03 октября 2011

В моем cucumber.yml я пытался добавить эту опцию (default: --drb --format progress), но она возвращает ошибку:

Exception encountered: #<ArgumentError: wrong number of arguments (3 for 2)
Error creating formatter: progress>

Когда я беру его в скобках default: --drb --"format progress", это не такПомогает:

invalid option: --format progress (OptionParser::InvalidOption)

Так что, возможно, нет никакой опции, но это должно быть

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

Полная трассировка:

wrong number of arguments (3 for 2)
Error creating formatter: progress (ArgumentError)
/home/alder/.rvm/gems/ruby-1.9.2-p290@global/gems/activerecord-3.1.0/lib/active_record/base.rb:1543:in `initialize'

/home/alder/.rvm/gems/ruby-1.9.2-p290@global/gems/cucumber-1.1.0/lib/cucumber/cli/configuration.rb:168:in `new'
/home/alder/.rvm/gems/ruby-1.9.2-p290@global/gems/cucumber-1.1.0/lib/cucumber/cli/configuration.rb:168:in `block in formatters'
/home/alder/.rvm/gems/ruby-1.9.2-p290@global/gems/cucumber-1.1.0/lib/cucumber/cli/configuration.rb:163:in `map'
/home/alder/.rvm/gems/ruby-1.9.2-p290@global/gems/cucumber-1.1.0/lib/cucumber/cli/configuration.rb:163:in `formatters'
/home/alder/.rvm/gems/ruby-1.9.2-p290@global/gems/cucumber-1.1.0/lib/cucumber/cli/configuration.rb:68:in `build_tree_walker'
/home/alder/.rvm/gems/ruby-1.9.2-p290@global/gems/cucumber-1.1.0/lib/cucumber/runtime.rb:42:in `run!'
/home/alder/.rvm/gems/ruby-1.9.2-p290@global/gems/cucumber-1.1.0/lib/cucumber/cli/main.rb:43:in `execute!'
/home/alder/.rvm/gems/ruby-1.9.2-p290@global/gems/cucumber-1.1.0/lib/cucumber/cli/main.rb:20:in `execute'
/home/alder/.rvm/gems/ruby-1.9.2-p290@global/gems/cucumber-1.1.0/bin/cucumber:14:in `<top (required)>'
/home/alder/.rvm/gems/ruby-1.9.2-p290@global/bin/cucumber:19:in `load'
/home/alder/.rvm/gems/ruby-1.9.2-p290@global/bin/cucumber:19:in `<main>'

И если я пишу опцию в cucumer.ml ошибка немного отличается:

Exception encountered: #<ArgumentError: wrong number of arguments (3 for 2)
Error creating formatter: progress>
backtrace:
/home/alder/.rvm/gems/ruby-1.9.2-p290@global/gems/activerecord-3.1.0/lib/active_record/base.rb:1543:in `initialize'
/home/alder/.rvm/gems/ruby-1.9.2-p290@global/gems/cucumber-1.1.0/lib/cucumber/cli/configuration.rb:168:in `new'
/home/alder/.rvm/gems/ruby-1.9.2-p290@global/gems/cucumber-1.1.0/lib/cucumber/cli/configuration.rb:168:in `block in formatters'
/home/alder/.rvm/gems/ruby-1.9.2-p290@global/gems/cucumber-1.1.0/lib/cucumber/cli/configuration.rb:163:in `map'
/home/alder/.rvm/gems/ruby-1.9.2-p290@global/gems/cucumber-1.1.0/lib/cucumber/cli/configuration.rb:163:in `formatters'
/home/alder/.rvm/gems/ruby-1.9.2-p290@global/gems/cucumber-1.1.0/lib/cucumber/cli/configuration.rb:68:in `build_tree_walker'
/home/alder/.rvm/gems/ruby-1.9.2-p290@global/gems/cucumber-1.1.0/lib/cucumber/runtime.rb:42:in `run!'
/home/alder/.rvm/gems/ruby-1.9.2-p290@global/gems/cucumber-1.1.0/lib/cucumber/cli/main.rb:43:in `execute!'
/home/alder/.rvm/gems/ruby-1.9.2-p290@global/gems/spork-0.9.0.rc9/lib/spork/test_framework/cucumber.rb:24:in `run_tests'
/home/alder/.rvm/gems/ruby-1.9.2-p290@global/gems/spork-0.9.0.rc9/lib/spork/run_strategy/forking.rb:13:in `block in run'
/home/alder/.rvm/gems/ruby-1.9.2-p290@global/gems/spork-0.9.0.rc9/lib/spork/forker.rb:21:in `block in initialize'
/home/alder/.rvm/gems/ruby-1.9.2-p290@global/gems/spork-0.9.0.rc9/lib/spork/forker.rb:18:in `fork'
/home/alder/.rvm/gems/ruby-1.9.2-p290@global/gems/spork-0.9.0.rc9/lib/spork/forker.rb:18:in `initialize'
/home/alder/.rvm/gems/ruby-1.9.2-p290@global/gems/spork-0.9.0.rc9/lib/spork/run_strategy/forking.rb:9:in `new'
/home/alder/.rvm/gems/ruby-1.9.2-p290@global/gems/spork-0.9.0.rc9/lib/spork/run_strategy/forking.rb:9:in `run'
/home/alder/.rvm/gems/ruby-1.9.2-p290@global/gems/spork-0.9.0.rc9/lib/spork/server.rb:48:in `run'
/home/alder/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/1.9.1/drb/drb.rb:1558:in `perform_without_block'
/home/alder/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/1.9.1/drb/drb.rb:1518:in `perform'
/home/alder/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/1.9.1/drb/drb.rb:1592:in `block (2 levels) in main_loop'
/home/alder/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/1.9.1/drb/drb.rb:1588:in `loop'
/home/alder/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/1.9.1/drb/drb.rb:1588:in `block in main_loop'

У меня есть Spork, кстати, может быть, это проблема.

Ответы [ 2 ]

4 голосов
/ 05 октября 2011

Основываясь на обновленной информации в вашем вопросе, я думаю, что вижу проблему (поэтому я отправляю другой ответ, поскольку он полностью отличается от моего другого).Похоже, что Cucumber пытается создать экземпляр класса ActiveRecord, поэтому я подозреваю, что в вашем проекте где-то есть модель с именем «Progress», которую Cucumber пытается создать вместо фактического форматера.

Я смогчтобы воспроизвести вашу проблему (достаточно близко, во всяком случае), добавив этот класс в папку 'support':

class Progress
    def initialize
        raise "I don't exist!"
    end
end

В соответствии с документами, вы должны быть в состоянии указать здесь полное имя класса, т.е. --format Cucumber::Formatter::Progress, чтобы заставить Cucumber использовать свой собственный форматер.Тем не менее, я попробовал это, и это все еще не работает, похоже, есть ошибка в том, как Cucumber разрешает полное имя.

Я смог обойти это, добавив эту строку в мой env.rb file:

require 'cucumber/formatter/progress'

, что позволило мне успешно выполнить cucumber --format progress.

Я думаю, что, поскольку env.rb выполняется перед любым другим кодом, то класс Progress Cucumberбудет первым найденным при создании форматера.

0 голосов
/ 03 октября 2011

Из результатов, которые вы вставили, видно, что у вас есть дополнительная угловая ('>') скобка, плавающая в вашем файле cucumber.yml:

Ошибка создания форматера: прогресс>

Если это не опечатка в вашем вопросе, по какой-то причине Cucumber пытается создать форматер с именем 'progress>', поэтому вам, вероятно, просто нужно найти и удалить дополнительную угловую скобку.


Редактировать: Это не было проблемой вообще, см. мой другой ответ

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