gpt4 book ai didi

java - 如何在 Jenkins 上的 Gradle 构建中过滤测试而无需提交?

转载 作者:行者123 更新时间:2023-12-02 09:28:12 24 4
gpt4 key购买 nike

我有一个 Gradle 构建,可以在 Jenkins 上运行一套 Java Selenium 测试。由于计时可能会导致 Selenium 测试失败,因此我会重新运行一两次失败。

为此,我使用 Gradle 的测试过滤机制,例如:

test {
[...]
filter {
includeTestsMatching "*AccountTest.canWithdrawMoney*"
}
[...]
}

但这意味着我必须使用过滤器进行 Git 提交。

理论上我也可以使用这样的命令行过滤器:

gradle test --tests "*AccountTest.canWithdrawMoney*"

问题是我没有调用 gradle test 来运行测试。我将自己的任务称为 gradle testLocalgradle testServer,具体取决于我是在本地 PC 还是 Jenkins 服务器上运行测试,以及相应的任务调用 测试

(Jenkins 服务器必须执行额外的操作,例如下载并启动我们的产品;我已经在本地运行它了。)

如果我尝试...

gradle testLocal --tests "*AccountTest.canWithdrawMoney*"

...然后失败...

Unknown command-line option '--tests'.

...大概是因为 testLocaltestServer 不是(类型:测试)任务(我也不希望它们成为)。

我很高兴让测试过滤器成为 Jenkins 构建参数,因为构建已经参数化,但我无法找到将过滤器获取到 Gradle 的方法。

那么:鉴于此设置,是否有一种更简单的方法可以将测试过滤器传递到 Gradle,而不需要我将过滤器添加为 Git 提交?

最佳答案

你可以做

test {
[...]
def testFilter = findProperty('testFilter')
if (testFilter) {
filter {
includePatterns = testFilter.split(',')
}
}
[...]
}

并使用运行

gradle testLocal -PtestFilter=*AccountTest.canWithdrawMoney*

关于java - 如何在 Jenkins 上的 Gradle 构建中过滤测试而无需提交?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58185569/

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