Java 和 Cucumber + Ivy

标签 java ant cucumber jruby ivy

有人有关于 Java + Cucumber 集成的好的教程吗?我已经开始使用 Ant + Ivy,但无法正确构建项目。我找到了以下site ,但是在检查了他们的代码后,我能够构建的项目最接近的是以下错误:

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秒

最佳答案

cuke4duke 项目似乎已经死了。希望用 cucumber-jvm 替换该项目 - 如所见 here.

关于Java 和 Cucumber + Ivy,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8842551/

相关文章:

Java - 使用Ant自动生成样板代码

Android Ant 构建在具有两个源文件夹的项目上

ruby - 在 Aruba 中测试 CLI 时如何解决 Cucumber::Ambiguous 匹配错误

java - Ant 通过 Jenkins : "BUILD SUCCESSFUL" in Console Output while build is still running

java - 跳过 child 获取 parent - JPA

java - Android - 在运行时加载外部.jar

java - 更改另一个类中 JLabel 的文本 (Java)

java - Maven:通过属性复制依赖项

ruby-on-rails - 学习 Cucumber 和 RSpec 的好资源?

gradle - Gradle 项目的 Runner 类中无法解析导入 cucumber