Cuke4nuke: Отсутствует ли поддержка разных языков?

Я использую Cuke4Nuke версии 0.3.1, и у меня возникают проблемы с определением файлов функций на другом языке, кроме английского. Поиск в Google не принес никаких решений, поэтому мой вопрос прост: поддерживает ли Cuke4Nuke определение функций на других языках, кроме английского?

Я пробовал использовать примеры из репозитория GitHub's Cucumber. Вот пример функции, которая не работает:

# language: no
Egenskap: Summering
  For å unngå at firmaet går konkurs
  Må regnskapsførerere bruke en regnemaskin for å legge sammen tall

Scenario: to tall
  Gitt at jeg har tastet inn 5
  Og at jeg har tastet inn 7
  Når jeg summerer
  Så skal resultatet være 12

При компиляции и запуске через Cuke4Nuke сообщение об ошибке выглядит следующим образом:

Cuke4Nuke C: _work \ myProject \ Tests \ Integration.Tests \ bin \ Debug \ Integration.Tests.dll C: _work \ myProject \ Tests \ Integration.Tests \ features -q C: / _ work / myProject / Tests / Integration.Tests / features / summering.feature: Ошибка лексирования в строке 2: «Egenskap: Summering». См. http://wiki.github.com/aslakhellesoy/gherkin/lexingerror для получения дополнительной информации. . (Gherkin :: Lexer :: LexingError) C: / _ work / tools / Ruby186 / lib / ruby ​​/ gems / 1.8 / gems / gherkin-2.2.4-x86-mingw32 / lib / gherkin / lexer / i18n_lexer.rb: 22: в scan' C:/_work/tools/Ruby186/lib/ruby/gems/1.8/gems/gherkin-2.2.4-x86-mingw32/lib/gherkin/lexer/i18n_lexer.rb:22:in scan 'C: / _ work / tools / Ruby186 / lib / ruby ​​/ gems / 1.8 / gems / gherkin-2.2.4-x86-mingw32 / lib / gherkin / parser / parser.rb: 31: в parse' C:/_work/tools/Ruby186/lib/ruby/gems/1.8/gems/cucumber-0.9.0/bin/../lib/cucumber/feature_file.rb:35:in parse' C: / _work / tools / Ruby186 / lib / ruby ​​/ gems / 1.8 / gems / cucumber-0.9.0 / bin /../ lib / cucumber / runtime / features_loader.rb: 28: в load' C:/_work/tools/Ruby186/lib/ruby/gems/1.8/gems/cucumber-0.9.0/bin/../lib/cucumber/runtime/features_loader.rb:26:in each 'C: / _ work / tools / Ruby186 /lib/ruby/gems/1.8/gems/cucumber-0.9.0/bin/../lib/cucumber/runtime/features_loader.rb:26:в load' C:/_work/tools/Ruby186/lib/ruby/gems/1.8/gems/cucumber-0.9.0/bin/../lib/cucumber/runtime/features_loader.rb:14:in features 'C: / _ work / tools / Ruby186 / lib / ruby ​​/ gems / 1.8 / gems / cucumber-0.9.0 / bin /../ lib / cucumber / runtime.rb: 179: in features' C:/_work/tools/Ruby186/lib/ruby/gems/1.8/gems/cucumber-0.9.0/bin/../lib/cucumber/runtime.rb:32:in run! ' C: / _ work / tools / Ruby186 / lib / ruby ​​/ gems / 1.8 / gems / cucumber-0.9.0 / bin /../ lib / cucumber / cli / main.rb: 54: in execute!' C:/_work/tools/Ruby186/lib/ruby/gems/1.8/gems/cucumber-0.9.0/bin/../lib/cucumber/cli/main.rb:29:in execute 'C: / _ work / tools / Ruby186 / lib / ruby ​​/ gems / 1.8 / gems / cucumber-0.9.0 / bin / cucumber: 8 C: / _ work / tools / Ruby186 / bin / cucumber: 19: in load'load '

Кажется, что cuke4nuke (или Cucumber?) Полностью пропускает объявление языка #. Например, следующая функция работает, когда не должна.

# language: fi
Feature: Addition
In order to avoid silly mistakes
As a math idiot 
I want to be told the sum of two numbers

Scenario Outline: Add two numbers
Given I have entered <input_1> into the calculator
And I have entered <input_2> into the calculator
When I press <button>
hen the result should be <output> on the screen

Examples:
| input_1 | input_2 | button | output |
| 20      | 30      | add    | 50     |
| 2       | 5       | add    | 7      |
| 0       | 40      | add    | 40     |

Есть идеи, как я могу заставить Cucumber и Cuke4Nuke заметить объявление языка? Мой Ruby имеет версию 1.86, а Cucumber - версию 0.9.


person Mikael Koskinen    schedule 28.09.2010    source источник
comment
Вы знаете о SpecFlow (www.specflow.org). Он использует тот же синтаксический анализатор Gherkin, что и Cucumber, но изначально работает на .NET. (Отказ от ответственности: я являюсь приверженцем SpecFlow.)   -  person jbandi    schedule 04.10.2010
comment
Спасибо за комментарий. В конце концов я перешел на SpecFlow и с тех пор успешно им пользуюсь.   -  person Mikael Koskinen    schedule 06.10.2010


Ответы (1)


Это похоже на ошибку на стороне Cucumber / Gherkin, прежде чем что-либо перейдет в Cuke4Nuke. Объявление языка обрабатывается только на стороне Cucumber. К тому времени, когда подробности шага попадают в Cuke4Nuke, ключевых слов больше нет. Скорее всего, вы получите дополнительную помощь в группе cukes (groups.google.com/group/cukes/); Думаю, там более активны разработчики Cucumber.

Тем не менее, Cuke4Nuke еще не поддерживает языки. Вам все равно придется использовать атрибуты Given / When / Then в определениях шагов, а не Gitt / Når / Så, а при преобразовании строк для аргументов определения шага не будет использоваться правильный язык и региональные параметры, что может вызвать проблемы. Следующий выпуск Cuke4Nuke будет включать языковую поддержку. Атрибуты i18n уже есть в последнем источнике, и я работаю над культурой.

person Richard Lawrence    schedule 28.09.2010
comment
Спасибо за ваш ответ. Я загрузил, собрал и установил последнюю версию Cuke4Nuke с GitHub и попытался запустить включенный языковой пример, но получаю ту же ошибку на этом. Таким образом, похоже, что проблема на стороне Cucumber, как вы упомянули. Я тестировал это сейчас на двух разных компьютерах, и у них обоих одна и та же проблема, хотя оба они являются машинами Win x64. - person Mikael Koskinen; 28.09.2010