Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/jenkins/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Git 检测jenkins上的测试失败_Git_Jenkins_Gradle_Junit_Tdd - Fatal编程技术网

Git 检测jenkins上的测试失败

Git 检测jenkins上的测试失败,git,jenkins,gradle,junit,tdd,Git,Jenkins,Gradle,Junit,Tdd,我已经在詹金斯身边玩了5天了,但我有个问题。我有一个已经用JUnit进行了单元测试的Java代码,我正在使用GradleBuild来构建代码。我故意尝试三个测试中的一个测试失败,gradle build报告失败!这是意料之中的。然而,我将代码推到github上,经过几分钟的配置后,Jenkins上触发了一个构建。然而,jenkins将构建标记为成功,即使在本地机器上构建时测试失败!! 我将要发布的代码非常糟糕,但在jenkins上有实践经验是可以的 主课 考试班 格雷德尔先生 请建议如何解决上述

我已经在詹金斯身边玩了5天了,但我有个问题。我有一个已经用JUnit进行了单元测试的Java代码,我正在使用GradleBuild来构建代码。我故意尝试三个测试中的一个测试失败,gradle build报告失败!这是意料之中的。然而,我将代码推到github上,经过几分钟的配置后,Jenkins上触发了一个构建。然而,jenkins将构建标记为成功,即使在本地机器上构建时测试失败!! 我将要发布的代码非常糟糕,但在jenkins上有实践经验是可以的 主课

考试班

格雷德尔先生

请建议如何解决上述问题!
提前感谢:

我不理解您的代码,但您可以在jenkins中添加生成后操作,这会影响作业的状态

例如: 在指定的日志文件中搜索关键字,并使用该关键字将成功的生成降级为失败


:要显示错误和警告摘要,您如何运行Gradle脚本

无论您是使用Execute shell步骤执行./gradlew测试,还是使用执行测试任务,Jenkins都会在Gradle脚本失败(例如由于测试断言失败)时将构建标记为失败

但是您希望Jenkins构建被标记为不稳定而不是失败

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

然后,您可以在Jenkins中运行Gradle脚本,并让它显示JUnit结果,这将根据测试通过还是失败,将构建状态设置为成功或不稳定

Gradle java插件以JUnit XML格式将测试结果写入示例中的build/test results/test-HelloTest.XML


要分析结果,请转到作业配置中的生成后操作,添加发布JUnit测试结果报告,并在测试报告XMLs字段中输入**/test-*.xml。

在测试类代码中,我故意用注释标记了一个错误。在本地运行测试时,我收到一个断言错误,但jenkins没有这样做,它通过了测试。如果在生成日志中发现断言错误,则生成后操作将帮助您将测试标记为失败,如果您将其配置为搜索文本断言错误。但是如果您在本地遇到错误,而不是在jenkins的工作中,那么您需要找到问题的根本原因。jenkins有一个JUnit插件,您可能已经安装了该插件,因此最好使用它来解析测试结果,而不是依赖于控制台输出中的文本。生成输出是否显示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
    }
}
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'
}
test {
  ignoreFailures = true
}