黄瓜jvm FAILED FAILURE:构建失败,异常

时间:2014-07-23 12:52:34

标签: java shell gradle cucumber cucumber-jvm

我尝试运行这个gradle任务(通过gradlew)

使用cucmber jvm

task callCL (type: Exec) {
    commandLine './build/distributions/WebLargeTests/bin/WebLargeTests  -f html:build/reports/cucumber/ -f json:build/reports/cucumber/report.json --glue com.mayApp.testing.cucumber src/main/resources/features --tags ~@ignore -f rerun'
}

并收到此错误

:callCL FAILED

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':callCL'.
> A problem occurred starting process 'command './build/distributions/WebLargeTests/bin/WebLargeTests  -f html:build/reports/cucumber/ -f json:build/reports/cucumber/report.json --glue com.myApp.testing.cucumber src/main/resources/features --tags ~@ignore -f rerun''

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.

BUILD FAILED

Total time: 3.448 secs
error=2, No such file or directory
3:48:00 PM: External task execution finished 'callCL'.

当我在cmd中从同一路径运行相同的行时:

/build/distributions/WebLargeTests/bin/WebLargeTests  -f html:build/reports/cucumber/ -f json:build/reports/cucumber/report.json --glue com.myApp.testing.cucumber src/main/resources/features --tags ~@ignore -f rerun
Starting ChromeDriver (v2.9.248307) on port 12095
Starting ChromeDriver (v2.9.248307) on port 34150
Starting ChromeDriver (v2.9.248307) on port 29495
Starting ChromeDriver (v2.9.248307) on port 8792
Starting ChromeDriver (v2.9.248307) on port 23779
Starting ChromeDriver (v2.9.248307) on port 3553

UPDATE1:

此cmd在shell控制台中运行:

./ build / distributions / WebLargeTests / bin / WebLargeTests -f html:build / reports / cucumber / -f json:build / reports / cucumber / report.json --glue com.waze.testing.cucumber src / main / resources / features --tags @only -f rerun

但不在build.gradle

task callCL (type: Exec) {
    commandLine 'bash', './build/distributions/WebLargeTests/bin/WebLargeTests', '-f',
            'html:build/reports/cucumber/', '-f', 'json:build/reports/cucumber/report.json', '--glue',
            'com.waze.testing.cucumber', 'src/main/resources/features', '--tags', '@ignore', '-f', 'rerun'

    //store the output instead of printing to the console:
    standardOutput = new ByteArrayOutputStream()

    //extension method stopTomcat.output() can be used to obtain the output:
    ext.output = {
        return standardOutput.toString()
    }
}

顺便说一句

我希望cmd为:

./ build / distributions / WebLargeTests / bin / WebLargeTests -f html:build / reports / cucumber / -f json:build / reports / cucumber / report.json --glue com.waze.testing.cucumber src / main / resources / features --tags @only -f rerun --out rerun.txt

但不在build.gradle

task callCL (type: Exec) {
    commandLine 'bash', './build/distributions/WebLargeTests/bin/WebLargeTests', '-f',
            'html:build/reports/cucumber/', '-f', 'json:build/reports/cucumber/report.json', '--glue',
            'com.waze.testing.cucumber', 'src/main/resources/features', '--tags', '@ignore', '-f', 'rerun', '--out', 'rerun.txt'

    //store the output instead of printing to the console:
    standardOutput = new ByteArrayOutputStream()

    //extension method stopTomcat.output() can be used to obtain the output:
    ext.output = {
        return standardOutput.toString()
    }
}

但这不起作用(shell concole nore build.gradle)

1 个答案:

答案 0 :(得分:0)

看看这是否有效!

注意:我使用/ build / ...路径而不是先使用点然后斜杠:./ build /...

task callCL(type: Exec) {

        executable "bash"
        args "-c", "bash /build/distributions/WebLargeTests/bin/WebLargeTests -f html:build/reports/cucumber/ -f json:build/reports/cucumber/report.json --glue com.waze.testing.cucumber src/main/resources/features --tags @only -f rerun"


        // If you want the store the output to a file, you can also try the following
        //args "-c", "bash /build/distributions/WebLargeTests/bin/WebLargeTests -f html:build/reports/cucumber/ -f json:build/reports/cucumber/report.json --glue com.waze.testing.cucumber src/main/resources/features --tags @only -f rerun 1>/some/path/somefile.log 2>&1"

        //store the output instead of printing to the console:
        standardOutput = new ByteArrayOutputStream()

        //extension method stopTomcat.output() can be used to obtain the output:
        ext.output = {
           return standardOutput.toString()
        }
}