gpt4 book ai didi

git - 检测 jenkins 上的测试失败

转载 作者:行者123 更新时间:2023-12-03 04:46:33 25 4
gpt4 key购买 nike

自从 5 天以来,我一直在 Jenkins 周围玩耍,但我遇到了问题。我有一个已使用 JUnit 进行单元测试的 Java 代码,我正在使用 Gradle Build 来构建代码。我故意尝试使三个测试中的一个测试失败,并且 gradle build 报告失败!这是意料之中的。然而我把我的代码推到了 github SampleTestProject一分钟后(按照配置)在 Jenkins 上触发了构建。然而,即使在本地机器上构建测试失败, Jenkins 仍将构建标记为成功!
我要发布的代码真的很糟糕,但是可以在 jenkins 上动手体验一下
主类

   package com.bitwise.test;

/**
* Created by AniruddhaS on 2/11/2016.
*/
public class Hello {
public String sayHello() {
return "Hello";
}

public int addArgs(int i, int i1) {
return (i+i1);
}

public String sayBye() {
return "Bye";
}

public int mulArgs(int i, int i1) {
return (i*i1);
}
}

测试类
package com.bitwise.test;

import junit.framework.Assert;
import org.junit.Test;
import org.junit.experimental.theories.suppliers.TestedOn;

/**
* Created by AniruddhaS on 2/11/2016.
*/
public class HelloTest {
@Test
public void itShouldReturnHelloOnCallingHelloMethod(){
//given
Hello vector=new Hello();
//when
Assert.assertSame("Hello",vector.sayHello());
//then
}
@Test
public void itShouldReturnAValueAfterAdditionOfTheArgumentValues(){
//given
Hello adder=new Hello();
//when
Assert.assertEquals(3,adder.addArgs(2,1));
//then
}
@Test
public void itShouldPrintByeWhenRelevantFunctionIsCalled(){
//given
Hello bye=new Hello();
//when
Assert.assertSame("Bye",bye.sayBye());
//then
}
@Test
public void itShouldMultiply(){
//given
Hello bye=new Hello();
//when


Assert.assertEquals(6,bye.mulArgs(5,3));/*here mulArgs emits 15 but
test fails since expected value is 6*/
//then
}
}

构建.gradle
group 'hello'
version '1.0'

apply plugin: 'java'

sourceCompatibility = 1.5

repositories {
mavenCentral()
}
task test1<<
{
println("hello, test running")
}

test{
testLogging{
events 'started','passed'
events 'started','failed'
}
}

dependencies {
testCompile group: 'junit', name: 'junit', version: '4.11'
}

请建议如何解决上述问题!

提前致谢 :)

最佳答案

你是如何运行 Gradle 脚本的?

是否使用“执行 shell”步骤来执行 ./gradlew test 之类的操作,或者您正在使用 Gradle plugin执行您的test任务,Jenkins 会将构建标记为 失败 如果 Gradle 脚本失败,例如由于测试断言失败。

但是你想要的是 Jenkins 构建被标记为不稳定而不是失败。

为此,您需要更新您的 Gradle 脚本,以便在您的 test 中不将测试失败视为致命的。 build.gradle 的 block :

test {
ignoreFailures = true
}

然后你可以在 Jenkins 中运行你的 Gradle 脚本并让它 analyse JUnit 结果,它将构建状态设置为成功或不稳定,具体取决于测试是通过还是失败。

Gradle java插件以 JUnit XML 格式将测试结果写入 build/test-results/TEST-HelloTest.xml (在你的例子中)。

分析结果,进入作业配置中的“Post-build actions”,添加“Publish JUnit test result report”,输入 **/TEST-*.xml在“测试报告 XMLs”字段中。

关于git - 检测 jenkins 上的测试失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35356644/

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