2

war ファイルが 1 つのサブプロジェクトにビルドされ、統合テストが別のサブプロジェクトにある gradle multi プロジェクトがあります。ビルド中に統合テストを実行できるように、gretty が jetty インスタンスを開始できるはずだと読みましたが、gretty integrationTestTask タスクを、実際のテストが行​​われる他のサブプロジェクトのタスクに「接続」する方法がわかりません。実行されます。

私のプロジェクト構造は次のようになります。

root/
    int-test/
        build.gradle
    web/
        build.gradle
    build.gradle
    settings.gradle

ファイルの内容

ルート/settings.gradle:

include ':web'
include ':int-test'

ルート/build.gradle:

apply plugin: 'java'

ルート/web/build.gradle:

apply plugin: 'war'
apply from: 'https://raw.github.com/akhikhl/gretty/master/pluginScripts/gretty.plugin'

gretty {
    contextPath = '/'
    integrationTestTask = 'intTests'
}

task intTests << {
    println 'This task will run in just the right time'
}

ルート/int-test/build.gradle:

apply plugin: 'java'

task intTests << {
    println 'All integration testing is done in here'
}

「./gradlew -q intTests」を実行すると、次の出力が表示されます。

すべての統合テストはここで行われます
2014-12-11 15:37:02.046 情報 - ログは @1157ms で初期化されました
2014-12-11 15:37:02.554 情報 - 桟橋-9.2.3.v20140905
2014-12-11 15:37:02.682 警告 - ServletContainerInitializers: 検出されました。クラス階層: 空
2014-12-11 15:37:03.114 情報 - oagJettyWebAppContext@7da22e4a を開始しました{/,file:/Users/fredrik/callista/dev/grettyfitnesse/web/build/inplaceWebapp/,AVAILABLE}
2014-12-11 15:37:03.130 情報 - ServerConnector@2590ae17{HTTP/1.1}{0.0.0.0:8080} を開始しました
2014-12-11 15:37:03.130 INFO - 開始 @2245ms
2014-12-11 15:37:03.137 警告 - Jetty 9.2.3.v20140905 が開始され、ポート 8080 でリッスン
2014-12-11 15:37:03.158 警告 - で実行:
2014-12-11 15:37:03.159 警告 - http://localhost:8080/
このタスクはちょうどいいタイミングで実行されます
2014-12-11 15:37:03.221 情報 - ServerConnector@2590ae17{HTTP/1.1}{0.0.0.0:8080} を停止しました
2014-12-11 15:37:03.229 情報 - oagJettyWebAppContext@7da22e4a を停止しました{/,file:/Users/fredrik/callista/dev/grettyfitnesse/web/build/inplaceWebapp/,UNAVAILABLE}
2014-12-11 15:37:03.232 警告 - Jetty 9.2.3.v20140905 が停止しました。
サーバーが停止しました。

そのため、Web プロジェクトの intTests タスクは適切なタイミングで実行されますが、int-test プロジェクトの intTests タスクはかなり早い段階 (Web サーバーが開始される前) に実行されます。grtty プラグインが int-test プロジェクトで定義された intTests タスクに「接続」するように設定するにはどうすればよいですか?

私が試したこと: * "integrationTestTask = ':int-test:intTests'" を設定して、gretty が正しいタスクを探す必要があるサブプロジェクトを指定するだけで十分であることを期待しています。結果 - 桟橋も開始されていません。* ルート build.gradle で intTests タスクを作成し、int-test でそのタスクを拡張しようとしています。結果 - 違いはありません。* Web プロジェクトの intTests タスクに dependsOn(":int-test:intTests") を追加しました。結果 - 違いなし

4

1 に答える 1