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
如果测试数量减少,Jenkins集生成失败?_Jenkins_Junit_Jenkins Plugins - Fatal编程技术网

如果测试数量减少,Jenkins集生成失败?

如果测试数量减少,Jenkins集生成失败?,jenkins,junit,jenkins-plugins,Jenkins,Junit,Jenkins Plugins,如果jenkins中的测试数量减少,是否有方法标记测试运行失败。我们有一份JUnit的测试报告。 由于某些原因,有时测试次数会减少。这通常是严重的错误。有没有办法告诉jenkins在这种情况下测试状态应该是红色的?(可能是一些插件) 谢谢你的提示 即使有办法做到这一点,考虑到您执行的测试数量实际上可能会因合理的原因而在不同的构建中减少,这听起来也不是一个好主意 首先,我想找出这一切意外发生的原因。有一种方法 安装并添加生成后步骤 后期构建操作->添加步骤->Groovy后期构建 import j

如果jenkins中的测试数量减少,是否有方法标记测试运行失败。我们有一份JUnit的测试报告。 由于某些原因,有时测试次数会减少。这通常是严重的错误。有没有办法告诉jenkins在这种情况下测试状态应该是红色的?(可能是一些插件)


谢谢你的提示

即使有办法做到这一点,考虑到您执行的测试数量实际上可能会因合理的原因而在不同的构建中减少,这听起来也不是一个好主意

首先,我想找出这一切意外发生的原因。

有一种方法

安装并添加生成后步骤

后期构建操作->添加步骤->Groovy后期构建

import jenkins.model.*

def currentBuild = manager.build
def totalCurrent 
def totalPrevious

// evaluate test count of current Build
def result = currentBuild .getAction(hudson.tasks.junit.TestResultAction.class).result
if (result != null) {
  totalCurrent = result.hasProperty( 'totalCount' ) ? result.totalCount : null
} 

// evaluate test count of previous Build
result = currentBuild .previousBuild.getAction(hudson.tasks.junit.TestResultAction.class).result
if (result != null) {
  totalPrevious = result.hasProperty( 'totalCount' ) ? result.totalCount : null
} 

// fail the build if test count reduced
if(totalCurrent < totalPrevious) {
  manager.buildFailure()
}
导入jenkins.model*
def currentBuild=manager.build
def总电流
def totalPrevious
//评估当前生成的测试计数
def result=currentBuild.getAction(hudson.tasks.junit.TestResultAction.class).result
如果(结果!=null){
totalCurrent=result.hasProperty('totalCount')?result.totalCount:null
} 
//评估以前生成的测试计数
结果=currentBuild.previousBuild.getAction(hudson.tasks.junit.TestResultAction.class)。结果
如果(结果!=null){
totalPrevious=result.hasProperty('totalCount')?result.totalCount:null
} 
//如果测试计数减少,则生成失败
if(总电流<总上一次){
manager.buildFailure()
}

您可能需要添加更多的nullsafe检查。

我的意思是,在我们的情况下,测试的数量不会减少,如果是这样的话,它只会不时发生。我们不知道为什么有时会发生这种情况。junit文件创建的背后是一个复杂而混乱的过程。即使使用成熟的框架,有时也会发生由于某种原因,并不是所有的测试都在运行。如果发生这种情况,我认为至少得到一个警告是个好主意!或者给你举个例子。假设一个开发人员做得很糟糕,删除了很多测试,并在主分支上进行了提交。现在至少詹金斯应该给出最后的警告。