Gradle統合jettyの実行テスト
1652 ワード
Gradleが構築したプロジェクトがwebプロジェクトである場合、統合テストと機能テストが含まれている可能性があります.これらのテストとユニットテストの違いは、実行前にローカルでウェブサービスを起動し、テストが完了すると自動的にウェブサービスを閉じることができることです.
Webサービスをローカルで起動するには、Gradleに内蔵されたjettyプラグインを使用します.Jettyは軽量級のwebコンテナで、実行速度が速く、構成が簡単で、リモートデバッグが便利です.jettyを有効にするにはbuild.gradleにこのプラグインへの参照を追加します.
build.gradle
build.gradleの後、warパッケージの名前、起動ポートなどのプロパティを構成できます.
構成ユニットテスト実行のテストセット.統合テストを一般的なユニットテストと区別する必要があります.ユニットテストは事前にwebサービスを起動する必要がないため、実行速度が速く、より速いフィードバックが得られることを保証します.一般的な方法はユニットテストの接尾辞名をTestとする.JAva、集積テスト接尾辞はIntegrationTestと呼ばれている.java.
build.gradle
build.gradleは、統合テストを実行するためにTaskを新規作成します.
build.gradle
これにより、
出典:http://www.cnblogs.com/huang0925
Webサービスをローカルで起動するには、Gradleに内蔵されたjettyプラグインを使用します.Jettyは軽量級のwebコンテナで、実行速度が速く、構成が簡単で、リモートデバッグが便利です.jettyを有効にするにはbuild.gradleにこのプラグインへの参照を追加します.
build.gradle
apply plugin: 'jetty'
build.gradleの後、warパッケージの名前、起動ポートなどのプロパティを構成できます.
apply plugin: 'jetty'
httpPort = 9876
[jettyRun, jettyRunWar, jettyStop]*.stopPort = 9966
[jettyRun, jettyRunWar, jettyStop]*.stopKey = 'stopKey'
構成ユニットテスト実行のテストセット.統合テストを一般的なユニットテストと区別する必要があります.ユニットテストは事前にwebサービスを起動する必要がないため、実行速度が速く、より速いフィードバックが得られることを保証します.一般的な方法はユニットテストの接尾辞名をTestとする.JAva、集積テスト接尾辞はIntegrationTestと呼ばれている.java.
build.gradle
test {
include '**/*Test.class'
exclude '**/*IntegrationTest.class'
}
build.gradleは、統合テストを実行するためにTaskを新規作成します.
task intTest(type: Test, dependsOn: test) {
include '**/*IntegrationTest.class'
doFirst {
jettyRun.daemon = true
jettyRun.execute()
}
doLast {
jettyStop.execute()
}
}
gradle build
の実行時にintTest taskも実行できるように、intTestへの依存を追加できます.上記のコードは、まず、test taskに依存するタイプのintTestというtaskを作成します.この統合テストでは、IntegrationTestという接尾辞のテストクラスのみが実行されます.テストを実行する前に、まずバックグラウンドモードでjettyサーバを起動し、テストを実行した後、jettyStop taskを呼び出してjettyサービスを停止します.build.gradle
build.dependsOn intTest
これにより、
gradle build
の実行時にも統合テストが実行されます.また、統合テストの前後にwebサービスが自動的に起動および停止します.出典:http://www.cnblogs.com/huang0925