亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何在 Jenkins 上的 Gradle 構建中過濾測試而無需提交?

如何在 Jenkins 上的 Gradle 構建中過濾測試而無需提交?

德瑪西亞99 2023-09-13 17:59:30
我有一個 Gradle 構建,可以在 Jenkins 上運行一套 Java Selenium 測試。由于計時可能會導致 Selenium 測試失敗,因此我會重新運行一兩次失敗。為此,我使用 Gradle 的測試過濾機制,例如:test {    [...]    filter {        includeTestsMatching "*AccountTest.canWithdrawMoney*"    }    [...]}但這意味著我必須使用過濾器進行 Git 提交。理論上我也可以使用這樣的命令行過濾器:gradle test --tests "*AccountTest.canWithdrawMoney*"問題是我不打電話gradle test來運行測試。我調用我自己的任務gradle testLocal或gradle testServer,具體取決于我是在本地 PC 還是 Jenkins 服務器上運行測試,以及相應的任務調用test。(Jenkins 服務器必須執行額外的操作,例如下載并啟動我們的產品;我已經在本地運行它了。)如果我嘗試...gradle testLocal --tests "*AccountTest.canWithdrawMoney*"...然后失敗了...未知的命令行選項“--tests”。...大概是因為testLocal和testServer不是(類型:測試)任務(我也不希望它們成為)。我很高興讓測試過濾器成為 Jenkins 構建參數,因為構建已經參數化,但我無法找到將過濾器獲取到 Gradle 的方法。那么:鑒于此設置,是否有一種更簡單的方法可以將測試過濾器傳遞到 Gradle,而不需要我將過濾器添加為 Git 提交?
查看完整描述

2 回答

?
qq_花開花謝_0

TA貢獻1835條經驗 獲得超7個贊

你可以做


test {

    [...]

        def testFilter = findProperty('testFilter')

        if (testFilter) {

            filter {

               includePatterns = testFilter.split(',')

            } 

        } 

    [...]

}

并運行使用


gradle testLocal -PtestFilter=*AccountTest.canWithdrawMoney*


查看完整回答
反對 回復 2023-09-13
?
慕慕森

TA貢獻1856條經驗 獲得超17個贊

感謝 lance-java 幫助我實現這一目標,但直到我將其放入任務doFirst中的塊中后,我才能使他的解決方案發揮作用test。我還修改了它以適用于多個課程和測試。


對我有用的最終版本是:


test {

    [...]

    doFirst {

        def testFilter = System.getProperty('testFilter')

        if (testFilter) {

            def testFilterParts = testFilter.split(',')

            testFilterParts.each {

                item ->

                    filter {

                        includeTestsMatching item

                    }

            }

        }

    }

    [...]

}

我在 Jenkins testFilter 參數中使用了與此過濾器等效的內容:


*TestClassA.methodA*,*TestClassB.methodB*,*TestClassC.methodC*


查看完整回答
反對 回復 2023-09-13
  • 2 回答
  • 0 關注
  • 147 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號