Ява и Огурец + Плющ - PullRequest
       18

Ява и Огурец + Плющ

0 голосов
/ 13 января 2012

У кого-нибудь есть хороший учебник по интеграции Java + Cucumber? Я начал использовать Ant + Ivy, но не смог правильно построить проект. Я обнаружил следующий сайт , однако, после проверки их кода, наиболее близкой мне была возможность создать проект:

Buildfile: C:\workspace\cucumber-helloworld\build.xml
resolve:
[ivy:retrieve] :: Ivy 2.2.0 - 20100923230623 :: http://ant.apache.org/ivy/ ::
[ivy:retrieve] :: loading settings :: file = C:\workspace\cucumber-helloworld\ivysettings.xml
[ivy:retrieve] :: resolving dependencies :: cukes.info#java-example;working@SNKXW-SGENTRY
[ivy:retrieve]  confs: [default]
[ivy:retrieve]  found cuke4duke#cuke4duke;0.4.4 in cukes
[ivy:retrieve]  found org.jruby#jruby-complete;1.5.1 in ibiblio
[ivy:retrieve]  found org.picocontainer#picocontainer;2.10.2 in ibiblio
[ivy:retrieve]  found junit#junit;4.8.1 in ibiblio
[ivy:retrieve] :: resolution report :: resolve 162ms :: artifacts dl 6ms
--------------------------------------------------------------------
|                  |            modules            ||   artifacts   |
|       conf       | number| search|dwnlded|evicted|| number|dwnlded|
---------------------------------------------------------------------
|      default     |   4   |   0   |   0   |   0   ||   4   |   0   |
---------------------------------------------------------------------
[ivy:retrieve] :: retrieving :: cukes.info#java-example
[ivy:retrieve]  confs: [default]
[ivy:retrieve]  0 artifacts copied, 4 already retrieved (0kB/6ms)
-define-paths:
-install-gems:
  [gem] JRuby limited openssl loaded. http://jruby.org/openssl
  [gem] gem install jruby-openssl for full support.
  [gem] System.java:-2:in `arraycopy': java.lang.ArrayIndexOutOfBoundsException
  [gem]     from DefaultResolver.java:111:in `makeTime'
  [gem]     from DefaultResolver.java:277:in `create'
  [gem]     from DefaultResolver.java:317:in `handleScalar'
  [gem]     from DefaultResolver.java:435:in `orgHandler'
  [gem]     from DefaultResolver.java:455:in `node_import'
  [gem]     from org/yecht/ruby/DefaultResolver$s_method_1_0$RUBYINVOKER$node_import.gen:65535:in `call'
  [gem]     from CachingCallSite.java:146:in `call'
  [gem]     from RubyLoadHandler.java:40:in `handle'
  [gem]     from Parser.java:300:in `addNode'
  [gem]     from DefaultYAMLParser.java:676:in `yyparse'
  [gem]     from Parser.java:290:in `yechtparse'
  [gem]     from Parser.java:284:in `parse'
  [gem]     from YParser.java:152:in `load'
  [gem]     from org/yecht/ruby/YParser$s_method_0_1$RUBYINVOKER$load.gen:65535:in `call'
  [gem]     from JavaMethod.java:630:in `call'
  [gem]     from DynamicMethod.java:186:in `call'
  [gem]     from CachingCallSite.java:309:in `cacheAndCall'
  [gem]     from CachingCallSite.java:148:in `call'
  [gem]     from CallOneArgNode.java:57:in `interpret'
  [gem]     from LocalAsgnNode.java:123:in `interpret'
  [gem]     from NewlineNode.java:104:in `interpret'
  [gem]     from InterpretedMethod.java:180:in `call'
  [gem]     from DefaultMethod.java:172:in `call'
  [gem]     from CachingCallSite.java:309:in `cacheAndCall'
  [gem]     from CachingCallSite.java:148:in `call'
  [gem]     from CallOneArgNode.java:57:in `interpret'
  [gem]     from LocalAsgnNode.java:123:in `interpret'
  [gem]     from NewlineNode.java:104:in `interpret'
  [gem]     from BlockNode.java:71:in `interpret'
  [gem]     from InterpretedMethod.java:180:in `call'
  [gem]     from DefaultMethod.java:172:in `call'
  [gem]     from CachingCallSite.java:309:in `cacheAndCall'
  [gem]     from CachingCallSite.java:148:in `call'
  [gem]     from CallOneArgNode.java:57:in `interpret'
  [gem]     from NewlineNode.java:104:in `interpret'
  [gem]     from RescueNode.java:199:in `executeBody'
  [gem]     from RescueNode.java:118:in `interpretWithJavaExceptions'
  [gem]     from RescueNode.java:110:in `interpret'
  [gem]     from InterpretedMethod.java:180:in `call'
  [gem]     from DefaultMethod.java:172:in `call'
  [gem]     from CachingCallSite.java:309:in `cacheAndCall'
  [gem]     from CachingCallSite.java:148:in `call'
  [gem]     from FCallOneArgNode.java:36:in `interpret'
  [gem]     from InstAsgnNode.java:95:in `interpret'
  [gem]     from NewlineNode.java:104:in `interpret'
  [gem]     from BlockNode.java:71:in `interpret'
  [gem]     from EnsureNode.java:96:in `interpret'
  [gem]     from BeginNode.java:83:in `interpret'
  [gem]     from NewlineNode.java:104:in `interpret'
  [gem]     from WhenOneArgNode.java:36:in `whenSlowTest'
  [gem]     from WhenOneArgNode.java:46:in `when'
  [gem]     from CaseNode.java:133:in `interpret'
  [gem]     from NewlineNode.java:104:in `interpret'
  [gem]     from InterpretedBlock.java:373:in `evalBlockBody'
  [gem]     from InterpretedBlock.java:346:in `yield'
  [gem]     from InterpretedBlock.java:303:in `yield'
  [gem]     from Block.java:194:in `yield'
  [gem]     from YieldNode.java:112:in `interpret'
  [gem]     from NewlineNode.java:104:in `interpret'
  [gem]     from BlockNode.java:71:in `interpret'
  [gem]     from InterpretedBlock.java:373:in `evalBlockBody'
  [gem]     from InterpretedBlock.java:346:in `yield'
  [gem]     from InterpretedBlock.java:303:in `yield'
  [gem]     from Block.java:194:in `yield'
  [gem]     from RubyKernel.java:1251:in `loop_1_9'
  [gem]     from org/jruby/RubyKernel$s_method_0_0$RUBYFRAMEDINVOKER$loop_1_9.gen:65535:in `call'
  [gem]     from CachingCallSite.java:299:in `cacheAndCall'
  [gem]     from CachingCallSite.java:117:in `callBlock'
  [gem]     from CachingCallSite.java:132:in `callIter'
  [gem]     from FCallNoArgBlockNode.java:32:in `interpret'
  [gem]     from NewlineNode.java:104:in `interpret'
  [gem]     from InterpretedMethod.java:160:in `call'
  [gem]     from DefaultMethod.java:164:in `call'
  [gem]     from CachingCallSite.java:299:in `cacheAndCall'
  [gem]     from CachingCallSite.java:117:in `callBlock'
  [gem]     from CachingCallSite.java:122:in `call'
  [gem]     from CallNoArgBlockNode.java:64:in `interpret'
  [gem]     from NewlineNode.java:104:in `interpret'
  [gem]     from BlockNode.java:71:in `interpret'
  [gem]     from InterpretedMethod.java:242:in `call'
  [gem]     from DefaultMethod.java:196:in `call'
  [gem]     from CachingCallSite.java:339:in `cacheAndCall'
  [gem]     from CachingCallSite.java:197:in `callBlock'
  [gem]     from CachingCallSite.java:202:in `call'
  [gem]     from RubyClass.java:815:in `call'
  [gem]     from DynamicMethod.java:194:in `call'
  [gem]     from WrapperMethod.java:62:in `call'
  [gem]     from CachingCallSite.java:329:in `cacheAndCall'
  [gem]     from CachingCallSite.java:188:in `call'
  [gem]     from FCallTwoArgNode.java:38:in `interpret'
  [gem]     from LocalAsgnNode.java:123:in `interpret'
  [gem]     from NewlineNode.java:104:in `interpret'
  [gem]     from BlockNode.java:71:in `interpret'
  [gem]     from EnsureNode.java:96:in `interpret'
  [gem]     from InterpretedMethod.java:242:in `call'
  [gem]     from DefaultMethod.java:196:in `call'
  [gem]     from CachingCallSite.java:339:in `cacheAndCall'
  [gem]     from CachingCallSite.java:197:in `callBlock'
  [gem]     from CachingCallSite.java:202:in `call'
  [gem]     from CallTwoArgBlockPassNode.java:62:in `interpret'
  [gem]     from NewlineNode.java:104:in `interpret'
  [gem]     from BlockNode.java:71:in `interpret'
  [gem]     from InterpretedMethod.java:283:in `call'
  [gem]     from DefaultMethod.java:212:in `call'
  [gem]     from CachingCallSite.java:359:in `cacheAndCall'
  [gem]     from CachingCallSite.java:237:in `callBlock'
  [gem]     from CachingCallSite.java:252:in `callIter'
  [gem]     from CallThreeArgBlockNode.java:64:in `interpret'
  [gem]     from NewlineNode.java:104:in `interpret'
  [gem]     from BlockNode.java:71:in `interpret'
  [gem]     from InterpretedMethod.java:262:in `call'
  [gem]     from DefaultMethod.java:204:in `call'
  [gem]     from CachingCallSite.java:349:in `cacheAndCall'
  [gem]     from CachingCallSite.java:228:in `call'
  [gem]     from FCallThreeArgNode.java:40:in `interpret'
  [gem]     from NewlineNode.java:104:in `interpret'
  [gem]     from InterpretedBlock.java:373:in `evalBlockBody'
  [gem]     from InterpretedBlock.java:346:in `yield'
  [gem]     from InterpretedBlock.java:303:in `yield'
  [gem]     from Block.java:194:in `yield'
  [gem]     from RubyIO.java:1104:in `open'
  [gem]     from RubyKernel.java:283:in `open'
  [gem]     from org/jruby/RubyKernel$s_method_0_2$RUBYFRAMEDINVOKER$open.gen:65535:in `call'
  [gem]     from DynamicMethod.java:198:in `call'
  [gem]     from CachingCallSite.java:339:in `cacheAndCall'
  [gem]     from CachingCallSite.java:197:in `callBlock'
  [gem]     from CachingCallSite.java:212:in `callIter'
  [gem]     from FCallTwoArgBlockNode.java:34:in `interpret'
  [gem]     from NewlineNode.java:104:in `interpret'
  [gem]     from IfNode.java:119:in `interpret'
  [gem]     from IfNode.java:119:in `interpret'
  [gem]     from NewlineNode.java:104:in `interpret'
  [gem]     from BlockNode.java:71:in `interpret'
  [gem]     from InterpretedMethod.java:221:in `call'
  [gem]     from DefaultMethod.java:188:in `call'
  [gem]     from CachingCallSite.java:329:in `cacheAndCall'
  [gem]     from CachingCallSite.java:188:in `call'
  [gem]     from CallTwoArgNode.java:59:in `interpret'
  [gem]     from InstAsgnNode.java:95:in `interpret'
  [gem]     from NewlineNode.java:104:in `interpret'
  [gem]     from RescueNode.java:199:in `executeBody'
  [gem]     from RescueNode.java:118:in `interpretWithJavaExceptions'
  [gem]     from RescueNode.java:110:in `interpret'
  [gem]     from BeginNode.java:83:in `interpret'
  [gem]     from NewlineNode.java:104:in `interpret'
  [gem]     from BlockNode.java:71:in `interpret'
  [gem]     from InterpretedMethod.java:242:in `call'
  [gem]     from DefaultMethod.java:196:in `call'
  [gem]     from CachingCallSite.java:339:in `cacheAndCall'
  [gem]     from CachingCallSite.java:197:in `callBlock'
  [gem]     from CachingCallSite.java:202:in `call'
  [gem]     from RubyClass.java:815:in `call'
  [gem]     from DynamicMethod.java:194:in `call'
  [gem]     from CachingCallSite.java:329:in `cacheAndCall'
  [gem]     from CachingCallSite.java:188:in `call'
  [gem]     from CallTwoArgNode.java:59:in `interpret'
  [gem]     from DAsgnNode.java:110:in `interpret'
  [gem]     from NewlineNode.java:104:in `interpret'
  [gem]     from BlockNode.java:71:in `interpret'
  [gem]     from InterpretedBlock.java:373:in `evalBlockBody'
  [gem]     from InterpretedBlock.java:346:in `yield'
  [gem]     from InterpretedBlock.java:303:in `yield'
  [gem]     from Block.java:194:in `yield'
  [gem]     from RubyArray.java:1630:in `eachCommon'
  [gem]     from RubyArray.java:1637:in `each'
  [gem]     from org/jruby/RubyArray$i_method_0_0$RUBYFRAMEDINVOKER$each.gen:65535:in `call'
  [gem]     from CachingCallSite.java:299:in `cacheAndCall'
  [gem]     from CachingCallSite.java:117:in `callBlock'
  [gem]     from CachingCallSite.java:122:in `call'
  [gem]     from CallNoArgBlockNode.java:64:in `interpret'
  [gem]     from NewlineNode.java:104:in `interpret'
  [gem]     from BlockNode.java:71:in `interpret'
  [gem]     from InterpretedMethod.java:221:in `call'
  [gem]     from DefaultMethod.java:188:in `call'
  [gem]     from CachingCallSite.java:329:in `cacheAndCall'
  [gem]     from CachingCallSite.java:188:in `call'
  [gem]     from CallTwoArgNode.java:59:in `interpret'
  [gem]     from NewlineNode.java:104:in `interpret'
  [gem]     from BlockNode.java:71:in `interpret'
  [gem]     from RescueNode.java:199:in `executeBody'
  [gem]     from RescueNode.java:118:in `interpretWithJavaExceptions'
  [gem]     from RescueNode.java:110:in `interpret'
  [gem]     from BeginNode.java:83:in `interpret'
  [gem]     from NewlineNode.java:104:in `interpret'
  [gem]     from InterpretedBlock.java:373:in `evalBlockBody'
  [gem]     from InterpretedBlock.java:346:in `yield'
  [gem]     from InterpretedBlock.java:303:in `yield'
  [gem]     from Block.java:194:in `yield'
  [gem]     from RubyArray.java:1630:in `eachCommon'
  [gem]     from RubyArray.java:1637:in `each'
  [gem]     from org/jruby/RubyArray$i_method_0_0$RUBYFRAMEDINVOKER$each.gen:65535:in `call'
  [gem]     from CachingCallSite.java:299:in `cacheAndCall'
  [gem]     from CachingCallSite.java:117:in `callBlock'
  [gem]     from CachingCallSite.java:122:in `call'
  [gem]     from CallNoArgBlockNode.java:64:in `interpret'
  [gem]     from NewlineNode.java:104:in `interpret'
  [gem]     from BlockNode.java:71:in `interpret'
  [gem]     from InterpretedMethod.java:139:in `call'
  [gem]     from DefaultMethod.java:156:in `call'
  [gem]     from CachingCallSite.java:289:in `cacheAndCall'
  [gem]     from CachingCallSite.java:108:in `call'
  [gem]     from VCallNode.java:85:in `interpret'
  [gem]     from NewlineNode.java:104:in `interpret'
  [gem]     from IfNode.java:119:in `interpret'
  [gem]     from IfNode.java:119:in `interpret'
  [gem]     from NewlineNode.java:104:in `interpret'
  [gem]     from BlockNode.java:71:in `interpret'
  [gem]     from InterpretedMethod.java:113:in `call'
  [gem]     from InterpretedMethod.java:127:in `call'
  [gem]     from DefaultMethod.java:147:in `call'
  [gem]     from CachingCallSite.java:279:in `cacheAndCall'
  [gem]     from CachingCallSite.java:68:in `call'
  [gem]     from CallSpecialArgNode.java:73:in `interpret'
  [gem]     from NewlineNode.java:104:in `interpret'
  [gem]     from BlockNode.java:71:in `interpret'
  [gem]     from CaseNode.java:138:in `interpret'
  [gem]     from NewlineNode.java:104:in `interpret'
  [gem]     from BlockNode.java:71:in `interpret'
  [gem]     from InterpretedMethod.java:180:in `call'
  [gem]     from DefaultMethod.java:172:in `call'
  [gem]     from CachingCallSite.java:309:in `cacheAndCall'
  [gem]     from CachingCallSite.java:148:in `call'
  [gem]     from FCallOneArgNode.java:36:in `interpret'
  [gem]     from NewlineNode.java:104:in `interpret'
  [gem]     from RescueNode.java:199:in `executeBody'
  [gem]     from RescueNode.java:118:in `interpretWithJavaExceptions'
  [gem]     from RescueNode.java:110:in `interpret'
  [gem]     from InterpretedMethod.java:180:in `call'
  [gem]     from DefaultMethod.java:172:in `call'
  [gem]     from CachingCallSite.java:309:in `cacheAndCall'
  [gem]     from CachingCallSite.java:148:in `call'
  [gem]     from CallOneArgNode.java:57:in `interpret'
  [gem]     from NewlineNode.java:104:in `interpret'
  [gem]     from BlockNode.java:71:in `interpret'
  [gem]     from InterpretedMethod.java:180:in `call'
  [gem]     from DefaultMethod.java:172:in `call'
  [gem]     from CachingCallSite.java:309:in `cacheAndCall'
  [gem]     from CachingCallSite.java:148:in `call'
  [gem]     from CallOneArgNode.java:57:in `interpret'
  [gem]     from NewlineNode.java:104:in `interpret'
  [gem]     from RescueNode.java:199:in `executeBody'
  [gem]     from RescueNode.java:118:in `interpretWithJavaExceptions'
  [gem]     from RescueNode.java:110:in `interpret'
  [gem]     from BeginNode.java:83:in `interpret'
  [gem]     from NewlineNode.java:104:in `interpret'
  [gem]     from BlockNode.java:71:in `interpret'
  [gem]     from RootNode.java:129:in `interpret'
  [gem]     from Ruby.java:2540:in `loadFile'
  [gem]     from ExternalScript.java:61:in `load'
  [gem]     from LoadService.java:255:in `load'
  [gem]     from RubyKernel.java:1010:in `loadCommon'
  [gem]     from RubyKernel.java:992:in `load'
  [gem]     from org/jruby/RubyKernel$s_method_0_1$RUBYFRAMEDINVOKER$load.gen:65535:in `call'
  [gem]     from DynamicMethod.java:190:in `call'
  [gem]     from DynamicMethod.java:186:in `call'
  [gem]     from CachingCallSite.java:309:in `cacheAndCall'
  [gem]     from CachingCallSite.java:148:in `call'
  [gem]     from FCallOneArgNode.java:36:in `interpret'
  [gem]     from NewlineNode.java:104:in `interpret'
  [gem]     from BlockNode.java:71:in `interpret'
  [gem]     from InterpretedBlock.java:373:in `evalBlockBody'
  [gem]     from InterpretedBlock.java:327:in `yield'
  [gem]     from BlockBody.java:78:in `call'
  [gem]     from Block.java:89:in `call'
  [gem]     from RubyProc.java:224:in `call'
  [gem]     from ProcMethod.java:62:in `call'
  [gem]     from DynamicMethod.java:182:in `call'
  [gem]     from DynamicMethod.java:178:in `call'
  [gem]     from CachingCallSite.java:289:in `cacheAndCall'
  [gem]     from CachingCallSite.java:108:in `call'
  [gem]     from gem:1:in `__file__'
  [gem]     from gem:-1:in `load'
  [gem]     from Ruby.java:685:in `runScript'
  [gem]     from Ruby.java:568:in `runNormally'
  [gem]     from Ruby.java:414:in `runFromMain'
  [gem]     from Main.java:286:in `run'
  [gem]     from Main.java:128:in `run'
  [gem]     from Main.java:97:in `main'

BUILD FAILED
C:\workspace\cucumber-helloworld\build.xml:33: Failed to run gem with arguments: install cuke4duke --version 0.4.4 --source http://rubygems.org/

Общее время: 10 секунд

Ответы [ 2 ]

1 голос
/ 18 января 2012

Рассматривали ли вы, возможно, использование JBehave вместо этого, потому что он использует тот же синтаксис (AFAICT), что и Gherkin для описания поведения и является родным для Java.Это должно позволить вам избежать всех хлопот с JRuby и т. Д. ... если, конечно, вы не пишете код JRuby.

1 голос
/ 18 января 2012

Кажется, что проект cuke4duke мертв.Хотите заменить этот проект на cucumber-jvm - как видно здесь.

...