当 JUnit 测试失败时,Mark Gradle 在 Jenkins 中构建不稳定

     2023-02-26     164

关键词:

【中文标题】当 JUnit 测试失败时,Mark Gradle 在 Jenkins 中构建不稳定【英文标题】:Mark Gradle build unstable in Jenkins when JUnit tests fail 【发布时间】:2012-01-10 17:55:50 【问题描述】:

我在 Jenkins 中有一个 Gradle 构建,其中包含作为构建的一部分执行的各种 JUnit 测试。现在,当一些测试失败时,完整的构建被标记为失败 - 因为 Gradle 说构建失败。

如何说服 Gradle 成功构建,然后让 Jenkins 将构建标记为不稳定?对于 ant,这完全没有问题。

【问题讨论】:

【参考方案1】:

使用ignoreFailures property in the test task.

apply plugin: 'java'
test 
     ignoreFailures = true

【讨论】:

是否可以仅从命令行为 jenkins 配置此功能?因为使用此选项 FAILED build 被记录为 SUCCESS 良好的构建成功 - 但詹金斯将构建显示为“成功”而不是“不稳定”:-/。有人对此有很好的解决方案吗?詹金斯的一些插件?什么的 好吧 - 解决方案是使用这个。这个答案中的一些东西***.com/questions/8148122/…我使用了“Text-finder”插件【参考方案2】:

你可以使用外部属性来解决这个问题。

if (!ext.has('ignoreTestFailures')) 
  ext.ignoreTestFailures = false


test 
  ignoreFailures = project.ext.ignoreTestFailures

在此设置中,默认情况下失败将使构建失败。但是如果你像这样调用 Gradle:gradle -PignoreTestFailures=true test 那么测试失败不会导致构建失败。因此,您可以将 Jenkins 配置为忽略测试失败,但在开发人员手动运行测试时使构建失败。

【讨论】:

【参考方案3】:

您可以将其包含在您的主 bu​​ild.gradle 中,以应用于所有项目和所有测试任务。

allprojects
    tasks.withType(Test) 
        ignoreFailures=true;
    

【讨论】:

【参考方案4】:

由于在我的情况下无法使用失败的测试,因此我发现了以下内容。 如果您使用的是脚本化的 jenkinsfile。可以将测试阶段包装在 try-catch 语句中。

try 
 stage('test') 
  sh './gradlew test'
  
 catch (e) 
  echo "Test FAILED"

这将捕获 gradle 抛出的构建异常,但它会将构建标记为不稳定。

【讨论】:

如何通过 Gradle 测试任务在我的 JUnit 上启用调试

】如何通过Gradle测试任务在我的JUnit上启用调试【英文标题】:HowtoenabledebugonmyJUnitthroughGradletesttask【发布时间】:2014-05-1017:50:43【问题描述】:我在尝试通过Gradle测试任务运行JUnit测试时遇到了麻烦。当我直接使用RunAs->JUnit测... 查看详情

当所有测试都是最新的时如何运行 Gradle 测试?

】当所有测试都是最新的时如何运行Gradle测试?【英文标题】:HowtorunGradletestwhenalltestsareUP-TO-DATE?【发布时间】:2015-06-0805:43:30【问题描述】:我设置了成绩脚本。当我执行Gradle构建时,一切正常,它运行jUnit测试。之后,当我... 查看详情

詹金斯:捕捉junit测试失败

】詹金斯:捕捉junit测试失败【英文标题】:Jenkins:Catchingjunittestfailures【发布时间】:2018-10-0220:44:47【问题描述】:我试图让我的Jenkins在junit测试失败时发送一条Slack消息,但是当测试失败时它不会执行任何其他操作。我在Multibra... 查看详情

java示例代码_只有当JUnit测试方法失败时,才使用SLF4J在Java中记录语句

java示例代码_只有当JUnit测试方法失败时,才使用SLF4J在Java中记录语句 查看详情

选择要运行的配置类型时,在 IntelliJ IDEA 15 中运行 Gradle 测试而不是 Junit 测试

】选择要运行的配置类型时,在IntelliJIDEA15中运行Gradle测试而不是Junit测试【英文标题】:RunGradletestandnotJunittestinIntelliJIDEA15whenchoosingconfigurationtypetorunwith【发布时间】:2016-03-2319:16:06【问题描述】:我从14更新到Intellij15.02,并想... 查看详情

如何使用 Gradle 和 JUnit 5 仅运行特定测试?

】如何使用Gradle和JUnit5仅运行特定测试?【英文标题】:HowtorunonlyspecifictestswithGradleandJUnit5?【发布时间】:2018-07-2008:41:15【问题描述】:使用Gradle及其对JUnit4的支持,我可以使用--tests选项选择特定测试,如下所示:$./gradlewtest--t... 查看详情

使用基于 Gradle 的配置时在 Android Studio (IntelliJ) 上运行简单的 JUnit 测试

...基于Gradle的配置时在AndroidStudio(IntelliJ)上运行简单的JUnit测试【英文标题】:RunningsimpleJUnittestsonAndroidStudio(IntelliJ)whenusingaGradle-basedconfiguration【发布时间】:2013-07-2413:48:09【问题描述】:我正在使用AndroidStudio/IntelliJ构建现有的Andro... 查看详情

JUnit 测试在 Eclipse 中通过但在 Maven Surefire 中失败

】JUnit测试在Eclipse中通过但在MavenSurefire中失败【英文标题】:JUnittestspassinEclipsebutfailinMavenSurefire【发布时间】:2011-03-2221:25:11【问题描述】:我已经使用JUnit4和spring-test库编写了一些JUnit测试。当我在Eclipse中运行测试时,运行良... 查看详情

Gradle 没有找到我使用 Kotlin 和 JUnit 5 进行的测试

】Gradle没有找到我使用Kotlin和JUnit5进行的测试【英文标题】:GradledoesnotfindmytestswithKotlinandJUnit5【发布时间】:2018-06-0618:04:26【问题描述】:我已经用Kotlin和Junit5编写了一些基本的单元测试。不幸的是,当我从IntellijIDEA运行它们... 查看详情

如何让 JUnit 测试(从 Ant 脚本驱动)转储导致失败的异常堆栈?

】如何让JUnit测试(从Ant脚本驱动)转储导致失败的异常堆栈?【英文标题】:HowcanIgetJUnittest(drivenfromAntscript)todumpthestackofexceptionthatcausesfailure?【发布时间】:2011-01-2914:59:38【问题描述】:我们从Ant脚本运行JUnit测试,如下所示。... 查看详情

Gradle 找不到集成测试、JUnit 5 和 Spring Boot:没有找到给定的测试包括:

】Gradle找不到集成测试、JUnit5和SpringBoot:没有找到给定的测试包括:【英文标题】:GradleCannotFindIntegrationTest,JUnit5andSpringBoot:Notestsfoundforgivenincludes:【发布时间】:2020-11-0113:53:46【问题描述】:当我跑步时:./gradlew:integrationTest--te... 查看详情

Junit测试在包上运行时失败,但在文件上运行时成功

】Junit测试在包上运行时失败,但在文件上运行时成功【英文标题】:Junittestfailswhenrunonpackage,butsuccesswhenrunonfile【发布时间】:2014-05-1514:40:51【问题描述】:重大更新:有没有人遇到过这种情况?我在一个Maven项目中使用JUnit4.5和... 查看详情

jenkins构建失败,因为它正在查找执行junit测试时在logback.xml中定义的日志路径(代码片段)

当我尝试与Junit测试一起进行代码的gradle构建时,我在Jenkins上收到以下错误:Causedby:java.lang.IllegalStateException:java.lang.IllegalStateException:Logbackconfigurationerrordetected:ERRORinch.qos.logback.core.rolling.RollingFileAppender[FILE]-Failedtocreateparentdirectorie... 查看详情

在junit测试中没有创建hibernatetransaction

...的原因。它现在运行良好,但是当我在编写事务部分之后测试相同的方法时,其中一个测试用例在抛出NPE(空指针异常)时失败,而使用相同方法的其余测试用例则通过。我是SpringHibernate的新手,试图了解失败背后的原因。dummyD... 查看详情

当 HEAD 请求失败时,Gradle 无法下载依赖项

】当HEAD请求失败时,Gradle无法下载依赖项【英文标题】:GradlefailingtodownloaddependencywhenHEADrequestfails【发布时间】:2018-06-2312:55:58【问题描述】:我在我的Gradle构建脚本中设置了一个依赖项,该脚本托管在Bitbucket上。Gradle下载失败... 查看详情

如何使用 Gradle 运行 JUnit 测试?

】如何使用Gradle运行JUnit测试?【英文标题】:HowtorunJUnittestswithGradle?【发布时间】:2014-01-0912:23:15【问题描述】:目前我有以下build.gradle文件:applyplugin:\'java\'sourceSetsmainjavasrcDir\'src/model\'dependenciescompilefiles(\'libs/mnist-tools.jar\',\'l 查看详情

Kotlin + SpringBootTest + Junit 5 + AutoConfigureMockMvc:测试通过时应该失败(似乎@BeforeEach没有生效)

】Kotlin+SpringBootTest+Junit5+AutoConfigureMockMvc:测试通过时应该失败(似乎@BeforeEach没有生效)【英文标题】:Kotlin+SpringBootTest+Junit5+AutoConfigureMockMvc:testpassingwhenitwassupposedtofail(seems@BeforeEachnottakingeffect)【发布时间】:2020-08-08 查看详情

使用 gradle 进行 android 项目的 junit 测试

】使用gradle进行android项目的junit测试【英文标题】:junittestingwithgradleforanandroidproject【发布时间】:2013-06-1703:25:39【问题描述】:我正在尝试在Android项目中进行测试(junit和robolectric),但我完全卡住了。我的主要问题是我用gradl... 查看详情