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

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

我們如何排除某些單元測試在 Android 項目中運行

我們如何排除某些單元測試在 Android 項目中運行

至尊寶的傳說 2023-07-13 15:53:27
我們在等級版本 5.5android gralde 插件 3.5.0我可以運行測試的子集./gradlew?:app:testDebug?--tests="*Fragment*"?--tests="*Activity*"但我想找到一種方法來進行相反的操作,即不運行與這些選項匹配的測試,例如./gradlew :app:testDebug --notTests="*Fragment*" --notTests="*Activity*"有一個 exceptTests 選項但我不能在 android 項目中使用它們,這些是純 java 選項。一些背景:在我們的 CI 中,我們發現單元測試存在內存問題,并且我們懷疑 roboelectric,因此我們正在嘗試單獨的純單元測試與 roboelectric 測試,以嘗試隔離問題或針對作業應用特定修復。
查看完整描述

1 回答

?
牧羊人nacy

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

我知道這不是最好的解決方案,但我確實通過執行以下操作設法使其發揮作用。


用注釋你的測試類


@Category(my.package.WhateverClass) // I personally used Robolectric

將以下內容添加到您的根目錄build.gradle


if (project.gradle.startParameter?.taskRequests?.args[0]?.remove("--robolectric")) {

    subprojects

            .all {

        it.tasks

                .withType(Test)

                .configureEach {

            println "Configuring task $it.name"

            useJUnit {

                includeCategories 'my.package.WhateverClass'

            }

        }

    }

} else if (project.gradle.startParameter?.taskRequests?.args[0]?.remove("--unit")) {

    subprojects

            .all {

        it.tasks

                .withType(Test)

                .configureEach {

            println "Configuring task $it.name"

            useJUnit {

                excludeCategories 'my.package.WhateverClass'

            }

        }

    }

}

./gradlew project:testDebug --robolectric 作為或 運行測試 ./gradlew project:testDebug --unit


如果您不添加任何內容,它將默認運行所有測試


如果您有更多時間,您可能可以創建一個任務,該任務從測試擴展并添加相同的配置。


注意:之所以.remove('--robolectric')存在,是因為 Gradle 會認為它是一個任務,因為它沒有在任何任務中定義為標志


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

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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