私は、マルチモジュールのMaven春-booot Mavenのプロジェクトを持っています。子モジュールの一つは、私が起動してから停止することをスタブ(春ブーツアプリ)での統合テスト中に myRealApp。
Parent Pom
|
|----myRealApp module(spring boot app)
|----stub-of-some-remote-rest-api module(This is also a spring-boot app)
これは、モジュールmyRealAppのようにどのようにポンポンファイルルックスです。これはまた、すべての統合テストを持っています。その前統合テスト・フェーズスタブモジュールを起動しようとしています。私は子供のモジュールディレクトリにMavenのゴールを実行すると、私はエラーを取得します:
mvn integration-tests -X
エラー:メインクラスio.swagger.MyStubを見つけるか、ロードできませんでした。
org.apache.maven.lifecycle.LifecycleExecutionException:春・ブートのMavenプラグイン-:ゴールorg.springframework.bootの実行に失敗しました1.5.8.RELEASE:プロジェクトの実行(スタートブート):できませんでした幹部のJava
私は作業ディレクトリが正しく設定されていることをデバッグモードで見ることができます。
myRealAppのポンポン:
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<mainClass>${spring.boot.mainclass}</mainClass>
</configuration>
<executions>
<execution>
<configuration>
<workingDirectory>${project.parent.basedir}/module-of-my-stub/src/main/java</workingDirectory>
<mainClass>io.swagger.MyStub</mainClass>
</configuration>
<id>start-boot</id>
<phase>pre-integration-test</phase>
<goals>
<goal>run</goal>
</goals>
</execution>
<execution>
<id>stop-boot</id>
<phase>post-integration-test</phase>
<goals>
<goal>stop</goal>
</goals>
</execution>
<execution>
<goals>
<goal>build-info</goal>
</goals>
</execution>
</executions>
</plugin>
たぶん私は、個々の実行にセットWORKINGDIRECTORYに許可、または他のモジュールへの参照を与えていないのですか?
スタブは、実際のリモートサービスのテスト環境は、信頼性がありませんでしたし、時間の半分ダウンしていたので、私は、開発中に使用私のアプリケーションが依存されているリモートRESTサービス、のように振る舞っています。だから、あまりにも統合テストでそれを使用することにしました。
質問に対するコメントの一部を統合するために、これらは基本的にアドバイスに従って、この他の答え。
キーが設定されたclassesDirectory
反対spring-boot-maven-plugin:run
を指すように目標target\classes
他のプロジェクトの下のディレクトリ。
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<mainClass>${spring.boot.mainclass}</mainClass>
</configuration>
<executions>
<execution>
<id>start-stub</id>
<configuration>
<arguments>
<argument>--server.port=8090</argument>
</arguments>
<mainClass>io.swagger.Stub</mainClass>
<classesDirectory>../my-stub/target/classes</classesDirectory>
</configuration>
<goals>
<goal>start</goal>
</goals>
<phase>pre-integration-test</phase>
</execution>
<execution>
<goals>
<goal>build-info</goal>
</goals>
</execution>
</executions>
</plugin>