Gradle任务失败,但Travis构建仍然通过

Gradle任务失败,但Travis构建仍然通过,gradle,travis-ci,Gradle,Travis Ci,作为Travis构建过程的一部分,我正在运行构建脚本: sudo: false env: global: language: android jdk: - oraclejdk8 android: components: ... before_install: ... script: - ./scripts/build.sh 作为build.sh脚本的一部分,我正在运行一些Gradle任务: ... ./gradlew clean assembleDebug testDe

作为Travis构建过程的一部分,我正在运行构建脚本:

sudo: false
env:
  global:
language: android
jdk:
- oraclejdk8
android:
  components:
    ...
before_install:
    ...
script:
- ./scripts/build.sh
作为build.sh脚本的一部分,我正在运行一些Gradle任务:

...
./gradlew clean assembleDebug testDebug -PdisablePreDex
...
testDebug由于未通过测试而失败:

2 tests completed, 1 failed
:MyApp:testDebugUnitTest FAILED
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':MyApp:testDebugUnitTest'.
> There were failing tests. See the report at: file:///home/travis/build.../build/reports/tests/debug/index.html
* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.
问题是Travis的构建仍然成功。我认为任何失败的Gradle任务都会使Travis构建失败。我想情况并非如此。我如何确保任何失败的Gradle任务都会使Travis构建失败

[更新]

如果我将gradle命令直接移动到travis.yml文件中,那么一切都会正常工作

sudo: false
env:
  global:
language: android
jdk:
- oraclejdk8
android:
  components:
    ...     
before_install:
    ...
script: ./gradlew clean assembleDebug testDebug -PdisablePreDex

问题是我没有将Gradle行的退出代码从脚本中传递给Travis

我检查了shell脚本退出代码并将其传递回Travis后,一切都很好:

...
./gradlew clean assembleDebug testDebug -PdisablePreDex
if [ $? != 0 ]
then
 exit $?
fi

... # continue doing other stuff