小编Max*_*one的帖子

模拟 jenkins vars 文件中的自定义步骤

在我的 Jenkins 共享库中,/vars 目录中有大量定义自定义步骤的 groovy 文件。

其中许多都定义了多个方法,文件中的一个方法可能会调用同一文件中的另一个方法。

我正在寻找一种方法来模拟这些本地方法,这样我就可以对每个方法进行单元测试,特别是那些调用其他方法的方法,而无需实际调用它们。

说结构是这样的:

// vars/step.groovy

def method1() {
  def someVar
  
  result = method2(someVar)

  if (result) { 
    echo 'ok' 
  }
  else { 
    echo 'no' 
  }

}

def method2(value) {

  if (value == 1) { 
    return true 
  }
  else { 
    return false 
  }

}

Run Code Online (Sandbox Code Playgroud)

显然这是一个非常简单的例子。但我需要的是一种模拟方法,method2以便我可以使用 和 进行测试method1resulttrue无需false实际调用method2

我已经尝试过该helper.registerAllowedMethod模式,但这似乎不适用于本地方法。我尝试过 Mockito 和 Spock,但它们对于我的需求来说似乎太过分了,而且对于简单的情况需要注入太多的改变。我还尝试使用模拟闭包在测试脚本中本地定义方法,但我找不到执行此操作的正确位置和/或正确的语法。

我希望有一种方法可以做这样的事情:

// test/com/myOrg/stepTest.groovy
import org.junit.*
import com.lesfurets.jenkins.unit.*
import com.lesfurets.jenkins.unit.BasePipelineTest
import static …
Run Code Online (Sandbox Code Playgroud)

junit mocking jenkins jenkins-pipeline-unit

6
推荐指数
0
解决办法
648
查看次数

有没有办法将所有数据库查询设置为仅检索给定用户的条目,或者整个应用程序中的每个查询都必须包含"AND user ..."?

我创建了一个应用程序,让用户输入产品并进行比较.我现在需要考虑扩展和多个用户,我想只向用户显示他们创建的项目(而不是整个数据库,这可能是某个选项,但现在每个用户必须创建自己的列表).

是否有一种罐装/首选方式使整个应用程序中的所有查询仅返回条目,并将"作者"字段设置为特定用户,登录用户?或者是否必须使用"AND author ..."类型过滤器更新每个查询?这是命名空间的用途吗?

我在Google App Engine上使用Python.

python google-app-engine gql

5
推荐指数
1
解决办法
535
查看次数

如何让 jenkins 构建状态徽章动态显示其文件所在的分支

我不确定摘要是否明确说明了这一点。我想要做的是创建一个 jenkins 构建状态徽章 url,它将以某种方式能够找出它所在的 Git 分支,并动态地向 url 添加正确的分支后缀。

我想这样做,这样我就可以创建一个自述文件,它始终显示masterdevelop<branch-i'm-looking-at>詹金斯建立是回购,而无需手动更新,每个分支的徽章。

我知道如何创建特定于分支的构建状态徽章。Jenkins 会自动为你构建 markdown URL。例如,我的一个develop分支看起来像:

[![Build Status](https://jenkins.mycompany.com/path/to/build/develop/badge/icon?subject=develop)]
(https://jenkins.mycompany.com/path/to/build/develop/)
Run Code Online (Sandbox Code Playgroud)

我可以想象它会是使用${BRANCH_NAME}jenkins env var 的东西,但我想不出如何创建它。我对 git hooks 或其他脚本的经验不足,甚至无法开始想出一种方法来做到这一点。

有没有人做过这个?

git github jenkins

5
推荐指数
1
解决办法
531
查看次数

如果-match不区分大小写,为什么我们需要-imatch?

提供似乎是多余的-match,并且-imatchif-match已经不区分大小写。他们之间有什么区别吗?

powershell

0
推荐指数
1
解决办法
3682
查看次数