android - Android测试在 Jenkins 失败

标签 android jenkins gradle noclassdeffounderror

我在Jenkins上设置了CI服务器,该服务器将自动构建Android应用程序。当我跳过测试时,一切正常。

clean build -x test

我会收到apk和一个成功完成的构建。
但是,当我不跳过测试时,会出现错误。我的命令是:
clean build

我将收到以下错误:
    :app:testDebug

    Test > testnamse FAILED
        java.lang.NoClassDefFoundError
            Caused by: java.lang.ClassNotFoundException

   Test > testname FAILED
        java.lang.NoClassDefFoundError

    Test > testname FAILED
        java.lang.NoClassDefFoundError

    ...

    8 tests completed, 8 failed
    :app:testDebug FAILED

    FAILURE: Build failed with an exception.

    * What went wrong:
    Execution failed for task ':app:testDebug'.
    > There were failing tests. See the report at: file:index.html

此.html显示失败的测试和java.lang.NoClassDefFoundError。但是,当开发人员在本地机器上执行gradle测试时,测试成功。他们使用gradle 2.2.1,而我在服务器上使用gradle 2.3。我不知道这是不是一个问题。

最佳答案

根据您的说法,我假设您使用的是类似于GitHub的某种形式的Source Control。值得检查您的存储库和“.ignore”文件(如果使用的是GitHub)。

好的.ignore文件的示例如下所示:

# Built application files
*.apk
*.ap_

# Files for the Dalvik VM
*.dex

# Java class files
*.class

# Generated files
bin/
gen/

# Gradle files
.gradle/
build/
/*/build/

# Local configuration file (sdk path, etc)
local.properties

# Proguard folder generated by Eclipse
proguard/

# Log Files
*.log

我感觉您的.jar文件未包含在 checkin 中,因此当 Jenkins 尝试构建.apk时,它找不到所需的.jar文件,然后失败。您的开发人员拥有.jar文件,这就是他们可以编译程序的原因。您应该要求开发人员检查git.ignore(或类似文件)并进行修复,以使其看起来像上面的我的。检查所有内容,然后尝试再次构建。

关于android - Android测试在 Jenkins 失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29919217/

相关文章:

android - SharedPreferences 不持久

linux - 通过 Jenkins 运行时,OpenShift 上的 Gradle 构建失败

android - 使用android studio 2.1.2并收到错误 "execution failed for task app clean"

android - 为什么activity_main.xml屏幕只是白色?

kotlin - 除非有错误,如何使所有Gradle输出静音?

java - 如何停止 Java Android 中的线程?

android - 回收站 View 选择 : stop auto item deselection when touching to the blank space inside the recyclerview

android - 如何在 TabActivity 中隐藏选项卡?

java - Spring 启动: Jenkins removes escaped double quote character from commands

jenkins - 如何在 Jenkins 的构建页面上直接显示信息?