簡體   English   中英

如何從gradle項目中的命令行覆蓋集成測試中的屬性?

[英]How can I override a property in an integration test from the command line in a gradle project?

例如,假設您在屬性文件中指定了數據源,並且希望在CI中覆蓋它。 如果我這樣做:

gradle -DdataSource.user=fred clean integrationTest

...這對於正在運行的測試JVM是可見的,還是僅僅是Gradle? 這樣做的正確方法是什么? 我現在正在編寫一個測試來解決這個問題,但是如果答案首先出現在這里,其他人可以擁有切達干酪。

不,只是以這種方式傳遞它不會使這個變量在你的測試中有用。 您已配置測試任務以使其將此屬性填充到測試中。

這可以通過這種方式對所有測試任務執行一次

tasks.withType(Test) { systemProperty 'datasource.user', System.getProperty('datasource.user', 'defaultisername') }

或者,如果要填充一些變量,則將它們全部傳遞一次,就像這樣

test {
    options {
        systemProperties(System.getProperties())
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM