使用Gradle運行集成測試
在本地啟動web服務我們可以使用Gradle內置的jetty插件。jetty是一個輕量級的web容器,其執行速度快,配置簡單,遠程調試方便。啟用jetty只需在build.gradle中加入對這個插件的引用。
apply plugin: 'jetty'
之后可以配置war包的名稱,啟動的端口等屬性。
apply plugin: 'jetty'
httpPort = 9876
[jettyRun, jettyRunWar, jettyStop]*.stopPort = 9966
[jettyRun, jettyRunWar, jettyStop]*.stopKey = 'stopKey'
我們需要將集成測試與一般的單元測試分開。因為單元測試并不需要事先啟動web服務,保證其執行速度快,能夠得到更快的反饋。一般做法是單元測試后綴名為Test.java,集成測試后綴名為IntegrationTest.java。
配置單元測試執行的測試集合。
test {
include '**/*Test.class'
exclude '**/*IntegrationTest.class'
}
然后新建一個Task,用于運行集成測試。
build.gradle task intTest(type: Test, dependsOn: test) { include '**/*IntegrationTest.class' doFirst { jettyRun.daemon = true jettyRun.execute() } doLast { jettyStop.execute() } } |
上述代碼首先是創建一個名為intTest的task,其類型為Test,依賴于test task。該集成測試只會運行后綴名為IntegrationTest的測試類。在運行測試之前,首先采用后臺模式啟動jetty服務器,運行完測試后再調用jettyStop task停止jetty服務。
為了使我們在運行gradle build時也會運行intTest task,可以添加對intTest的依賴。
build.dependsOn intTest
這樣在運行gradle build時也會運行集成測試。并且在集成測試前后web服務會自動的啟動和關閉。
posted on 2014-07-16 09:41 順其自然EVO 閱讀(461) 評論(0) 編輯 收藏 所屬分類: 測試學習專欄