带有gradle的黄瓜应用程序在本地运行良好但在Jenkins上失败

时间:2014-05-25 12:01:14

标签: java jenkins gradle cucumber-jvm

当我运行基于黄瓜的项目时,它表现得好像无法找到Steps类 - 我可以说,因为Jenkins上的日志提供了实现的代码片段。

我正在使用Gradle,我知道cuc-jvm存在问题。

构建文件的相关部分:

task cucumber(type: JavaExec) {
    dependsOn assemble, compileTestJava
    main = "cucumber.api.cli.Main"
    classpath = configurations.cucumberRuntime + sourceSets.main.output + sourceSets.test.output
    args = ['-f', 'pretty', '--glue', 'steps', 'src/test/resources']
    systemProperties = System.getProperties()
}

我不明白为什么通过Jenkins运行相同的命令(./gradlew clean cucumber)会失败?

以下是Jenkins的输出:

+ ./gradlew -Dapk=/Users/rakesh/workspace1/AcmeApp_4_10_Tiles/bin/AcmeApp_4_10_Tiles.apk clean cucumber
:clean
:compileJava UP-TO-DATE
:processResources UP-TO-DATE
:classes UP-TO-DATE
:jar
:assemble
:compileTestJava
:cucumber
Feature: Thrid party request for the Landing page.
  TODO: additional requests for box connection
...

You can implement missing steps with the snippets below:

@Given("^the user chooses not to login$")
...

BUILD SUCCESSFUL

Total time: 8.074 secs
$ /Users/rakesh/Apps/adt-bundle-mac-x86_64-20131030/sdk/platform-tools/adb disconnect emulator-5812
[android] Stopping Android emulator
[android] Archiving emulator log
$ /Users/rakesh/Apps/adt-bundle-mac-x86_64-20131030/sdk/platform-tools/adb kill-server
Finished: SUCCESS

2 个答案:

答案 0 :(得分:2)

我还想提一下,如果build.gradle中缺少依赖项,有时会出现此问题。

就我而言,build.gradle中的主要任务中缺少以下语句。

dependsOn assemble, compileTestJava

添加此项,解决了问题。

答案 1 :(得分:1)

我解决了这个问题,它与黄瓜,格拉德或詹金斯无关!我已经重命名了步骤类(大小写更改),它完全混淆了subversion,而java步骤类实际上已经丢失!!