gpt4 book ai didi

android - 允许在 Jenkins 上构建不稳定的 Android Gradle

转载 作者:塔克拉玛干 更新时间:2023-11-02 09:02:31 25 4
gpt4 key购买 nike

您好,我已经在 J​​enkins 上设置了我的 Android 项目以提供 CI。它运行良好,在连接的 Android 手机上运行测试。测试在扩展了 jUnit3 的 Android 测试框架上运行。

不幸的是,如果有任何测试失败,构建将被标记为失败。我希望能够通过两种方式改进这一点:

  1. 允许不稳定的构建
  2. 能够标记已知的测试失败

对于第 1 项,我尝试将其添加到项目 build.gradle 中:

connectedCheck {
ignoreFailures = true
}

但是没有效果。查看构建日志,我意识到实际的测试任务称为 connectedInstrumentTest,但找不到此任务:

connectedInstrumentTest {
ignoreFailures = true
}

原因:

Could not find method connectedInstrumentTest() for arguments [build_4ldpah0qgf0ukktofecsq41r98$_run_closure3@9cd826] on project ':Playtime'.

我错过了吗?

谢谢

编辑:这是我的项目 build.gradle,没什么特别的:

buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:0.5.+'
}
}
apply plugin: 'android'

dependencies {
compile files('libs/android-support-v4.jar')
}

android {
compileSdkVersion 17
buildToolsVersion "18.0.1"

defaultConfig {
minSdkVersion 8
targetSdkVersion 16
testPackageName "com.bb.pt.test"
testInstrumentationRunner "android.test.InstrumentationTestRunner"
}
}

connectedCheck {
ignoreFailures = true
}

我在 jenkins 中的 gradle 设置:

switches: --stacktrace --info
tasks: :pt:assembleDebug :pt:assembleTest :pt:connectedCheck

编辑:

我构建了 gradlew 并尝试了它。相同的输出。如果测试失败,我不希望构建失败:

:pt:connectedInstrumentTest FAILED

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':pt:connectedInstrumentTest'.
> There were failing tests. See the report at: file:///home/simon/WorkingCopies/bb/code/trunk/pt/pt/build/reports/instrumentTests/connected/index.html

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

BUILD FAILED

我试图在 build.gradle 中限定任务名称:

task connectedCheck {
ignoreFailures = true
}

但它认为我正在尝试添加一个新任务而不是修改现有任务。

FAILURE: Build failed with an exception.

* Where:
Build file '/home/simon/WorkingCopies/bb/code/trunk/pt/pt/build.gradle' line: 31

* What went wrong:
A problem occurred evaluating project ':pt'.
> Cannot add task ':pt:connectedCheck' as a task with that name already exists.

最佳答案

经过我们的交谈,我相信:

  • 问题仅在于 gradle 配置,与 jenkins 无关。让它在 gradle 中工作。
  • 我相信在 gradle 中(虽然我不是专家)你应该让 connectedInstrumentTest 忽略失败,但是你尝试使用以下内容失败了

    connectedInstrumentTest {
    ignoreFailures = true
    }
  • 也许解决方案是像这样包装这个配置节点:

    project.gradle.taskGraph.whenReady {
    connectedInstrumentTest {
    ignoreFailures = true
    }
    }

https://github.com/stanfy/hotandroid/blob/master/part0/build.gradle

关于android - 允许在 Jenkins 上构建不稳定的 Android Gradle,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18299099/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com