我遇到了自定义 gradle 任务的问题。似乎 gradle 拒绝启动命令行进程。
这是自定义任务:
task generateAllure(type: Exec) {
workingDir "$projectDir/allure/bin"
if (System.getProperty('os.name').toLowerCase(Locale.ROOT).contains('windows')) {
commandLine 'cmd', '/c', 'allure.bat', 'generate', '-c', '../../integration/build/allure-results'
} else {
commandLine 'bash', '-c', 'allure', 'generate', '-c',"$projectDir/integration/build/allure-results"
}
}
tasks.withType(Test)*.finalizedBy generateAllure
Run Code Online (Sandbox Code Playgroud)
具有适当的依赖关系:
compile group: 'ru.yandex.qatools.allure', name: 'allure-commandline', version: '1.4.18'
Run Code Online (Sandbox Code Playgroud)
使用后gradle clean test执行失败:
2: Task failed with an exception.
-----------
* What went wrong:
Execution failed for task ':generateAllure'.
> A problem occurred starting process 'command 'cmd''
Run Code Online (Sandbox Code Playgroud)
对此有什么想法吗?谢谢!
UPD:这是我执行 gradle -S clean 测试后得到的堆栈跟踪:
* Exception …Run Code Online (Sandbox Code Playgroud) 这两种方法之间的真正区别是什么?\ntrue如果字符串包含CharSequence给定参数,则两者具有相同的签名,并且返回false,如果不包含\xe2\x80\x99t。
方法:
\n\nboolean contains(CharSequence string)\n\nboolean contentEquals(CharSequence string)\nRun Code Online (Sandbox Code Playgroud)\n