- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
Power assertions在/script 中工作,但不在 Jenkinsfile 驱动的作业中工作。为什么?有没有办法让它发挥作用?
在 Jenkinsfile 作业中:
assert 1 == 2
at org.codehaus.groovy.runtime.InvokerHelper.assertFailed(InvokerHelper.java:404)
... wall of stack trace
在/脚本窗口中
Assertion failed:
assert 1 == 2
|
false
在这个简单的例子中,很容易弄清楚发生了什么。实际上,“==”的一个或两个操作数都是变量。在/script 版本中,它将显示值(请参阅上面的链接)。在 Jenkinsfile 控制台日志中,您只需按原样获取断言语句,没有任何提示。
在@daggett问题后添加:
node ()
{
stage('assert')
{
try
{
two = 2
assert 1==two
}
catch(Throwable t)
{
println t
error "assert failed"
}
}
}
输出:
Assertion failed:
assert 1==two
最佳答案
据我所知不可能。 Jenkins 管道 Groovy DSL 在解释 Groovy 期间使用自定义 CPS 解释器。这意味着它绕过/覆盖了 groovy 的许多标准实现,因此也绕过了断言实现。 Jenkins Pipeline CPS 的断言实现可以在 here 找到。 ,而真正的 groovy 实现使用 this断言评估期间的类,以便记录值并打印正确的异常。
为了在 Jenkins 管道 CPS 中获得类似的行为,人们要么需要重构 groovy 代码库和 Jenkins CPS 代码,要么复制上面链接的 AssertionWriter 类中的大量功能。
关于jenkins - 为什么 Groovy 的 powerassert 在 Jenkins 工作中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51497149/
我正在将 Java EE 与 Maven 结合使用。为了可读性和易于检查,我想使用 Groovy's PowerAssert在生产代码中。 有没有办法在标准 Java 类中做到这一点? 我尝试将“gr
我不喜欢 java assert 关键字,因为它并不总是在生产代码中启用。我正在寻找一个很好的“ProductionAssert”类来使用,它总是运行注意到的断言。 一个候选人是Guava's Pre
Power assertions在/script 中工作,但不在 Jenkinsfile 驱动的作业中工作。为什么?有没有办法让它发挥作用? 在 Jenkinsfile 作业中: assert 1 =
我是一名优秀的程序员,十分优秀!