Gradle統合jettyの実行テスト

1652 ワード

Gradleが構築したプロジェクトがwebプロジェクトである場合、統合テストと機能テストが含まれている可能性があります.これらのテストとユニットテストの違いは、実行前にローカルでウェブサービスを起動し、テストが完了すると自動的にウェブサービスを閉じることができることです.
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