2016-01-18 3 views
5

現在、私たちのプロジェクトでは、Spring Integrationを使用して、多くのサービスといくつかのプロトコルに関連するエンドポイントを統合しています。複数のSpringブートアプリケーション間のエンドツーエンドテスト

プロジェクトは複数のSpringブートアプリケーションであり、複数の実行可能なjarsが本番環境にデプロイされます。

質問です:

  1. これらのアプリケーションの一部を横断実行するために必要なテストを端から端までを実行するために、どのように、私は手動で一つ一つを実行する必要がありますか? Springブートアプリケーションを使用する前に、Maven tomcat7プラグインを使用してこの作業を完了できます(組み込みのTomcatにWARをデプロイしてpre-integration-testフェーズで実行します)。私は私のテストを実行します。今私はDocker/Vagrantを使用しないと仮定します。自動のエンドツーエンドテストを実行する方法のstackoverflowで見つけ

    同様の質問、End to end integration test for multiple spring boot applications under Maven

  2. 春の統合テストでは、たぶんHTTPエンドポイントを模擬しなければならないので、この目的をアーカイブするには単純なControllerをテストパッケージに書いていますが、別のポートで実行したいのです外部リソース。この目的のために、さまざまなポートで別々の@SpringBootApplicaitonクラスを同時にテストするにはどうすればいいですか?

最新のMaven、Java 8、Spring Boot 1.3.1.RELEASEを使用しています。

ありがとうございました。

+0

2番目の質問では、SpringはMockRestServiceServerを提供しています。これは、ターゲットREST APIをモックしてテストでこの目的をアーカイブすることができます。 – Hantsy

答えて

0

実際には、Springブートにはembeddedサーブレットコンテナがサポートされています。それらの1つはまさにTomcatです。 org.springframework.boot:spring-boot-starter-webのデフォルトはオンです。

org.springframework.boot:spring-boot-starter-testとその@SpringApplicationConfiguration@WebIntegrationTestを使用すると、ランダムportでも要件を満たすことができます。

してください、詳細については、春のブートReference Manualを参照してください。例えば、あなたがコロンまたは区切り等しい名前と値のペアとして@WebIntegrationTestに環境プロパティを追加することができますポートを変更するには

@WebIntegrationTest( "server.port:9000")。さらに、ランダムポートを使用して統合テストを実行するために、server.portおよびmanagement.portプロパティーを0に設定することもできます。

これで、@SpringBootApplicaitonがその埋め込みTomcatにデプロイされ、テストでrun services/controllersにアクセスできるようになりました。

注:SpringBlockアプリケーションにSpring Integration機能があるかどうかは関係ありません。動作は同じです:埋込みサーブレットコンテナと@Value("${local.server.port}")に対する統合テスト。

+2

私はSpringブートアプリケーションの '@ IntegrationTest'と' @WebIntegrationTest'についてよく知っています。たぶん私の表現はあなたを混乱させました、私は英語の男です。私が必要とするのは、私のスタンドアロンのend2endテストを実行してから、いくつかのSpringブートアプリケーションを起動することです(私の質問ではケース1)。 – Hantsy

関連する問題