私のプロジェクトにあるJunitsはクラスパスからプロパティファイルをロードする必要があります。これらのプロパティファイルのディレクトリを指定して、Mavenがテストを実行する前にクラスパスに設定する方法を教えてください。Maven - テスト実行中にクラスパスにディレクトリを追加します
答えて
build-helper-maven-pluginを使用して、追加のテストリソースディレクトリを次のように指定できます。次の設定を使用して、テスト・リソース・ディレクトリの内容は生成するテスト・ソース間、ターゲット/テスト-classesディレクトリにコピーされます相:あなたは自分の財産を入れたい場合は
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
<version>1.12</version>
<executions>
<execution>
<id>add-test-resource</id>
<phase>generate-test-sources</phase>
<goals>
<goal>add-test-resource</goal>
</goals>
<configuration>
<resources>
<resource>
<directory>path/to/additional/test/resources</directory>
<excludes>
<exclude>**/folder-to-exclude/**</exclude>
</excludes>
</resource>
</resources>
</configuration>
</execution>
</executions>
</plugin>
ディスク上のファイルどこかを、ビルド時に/テスト・クラスをターゲットに、これらのプロパティファイルをコピーしたくない、あなたはこのよう
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<additionalClasspathElements>
<additionalClasspathElement>/add/this/to/path</additionalClasspathElement>
</additionalClasspathElements>
</configuration>
</plugin>
残念ながら、Eclipseからテストを実行すると、m2eはSurefireの設定を取得しません。これはbuild-helper-maven-pluginのadd-test-resourceゴールよりも少し単純なのであまりにも悪いです。 – thSoft
理由だけではなく、test/resources
を使用してから、クラスパスにあなたの特性を置かないでそれを行うことができますその点。彼らはテスト段階のためだけにそこにいるでしょう。
このようなフォルダは1つしかありませんが、多くの場合、複数のテスト環境があります。 – 30thh
Mavenプロフィールをチェックしてください。 –
複数のリソース環境がある場合は、mavenプロファイルを使用して、テストしているプロファイルに従ってさまざまなリソースを配置できます。
test/resources/uat
test/resources/prod
test/resources/dev
しかし、通常、統合テストを行う必要がある場合は、build-helper-maven-pluginは必要ありません。
maven-resources-plugin
には、リソースをコピーできるようになるcopy-resources
という目標があります。 (あなたがproject.build.testOutputDirectoryを変更しない限り)
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<version>2.6</version>
<executions>
<execution>
<id>additional-resources</id>
<phase>process-test-resources</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<outputDirectory>${project.build.testOutputDirectory}</outputDirectory>
<resources>
<resource>
<directory>${project.basedir}/conf</directory>
</resource>
</resources>
</configuration>
</execution>
</executions>
</plugin>
これはtarget/test-classes
フォルダへのプロジェクトのベースにconf
フォルダの内容をコピーします、あなたのユニットテストの際にクラスパスに追加されます。たとえば、 。
新しいテストリソースフォルダを追加することもできます。
<build>
<testResources>
<testResource>
<directory>${project.basedir}/src/test/resources</directory>
</testResource>
<testResource>
<directory>${project.basedir}/src/test/something_else</directory>
</testResource>
</testResources>
</build>
最初のパスはsrc/test/resources
です。デフォルトのパスを使用する場合は、そのパスが含まれていることを確認してください。 (testResources
タグはデフォルトを上書きしますので、デフォルトのパスを明示的に指定しないと使用されなくなります)
これは私のために働いた。デフォルトの必要性を指摘するための+1。 –
これはまさに私が探していたものです、ありがとう!受け入れられる 'build-helper-maven-plugin'ソリューションよりもずっと簡単です。これを行う良い方法を探している他の人には、 '
- 1. 実行時にディレクトリをクラスパスに追加できますか?
- 2. クラスパスにMavenレポを追加する
- 3. FSNotifyは実行中に時計ディレクトリを追加します
- 4. WebSphere:クラスパスにbinディレクトリを追加する
- 5. NoSuchEJBException mavenテストを実行中
- 6. Maven:クラスパスに外部jarフォルダを追加
- 7. eclipseで単体テストを実行するときにクラスパスにsrc/main/resourcesを追加します。
- 8. MavenはEclipseプロジェクトにクラスパスを追加しません
- 9. Maven:テストが実行されるディレクトリを変更します
- 10. Springブートはコマンドライン実行からクラスパスにファイルを追加します
- 11. EclipseからSpring JUnitテストを実行するときにクラスパスに/ src/main/resourcesを追加する
- 12. 実行時にJavaクラスパスにファイルを追加する方法は?
- 13. Nashornを使用してMavenクラスパスにJavaScriptファイルを追加
- 14. Scala REPL:リモートMavenリポジトリをScala REPLクラスパスに追加するには?
- 15. Mavenプラグインのクラスパスにリソースを追加するには?
- 16. Play Framework - クラスパスに新しいディレクトリを追加する
- 17. Mavenテスト実行中のXMLファイルのロード
- 18. Mavenプラグイン追加の実行
- 19. Tomcatクラスパスにディレクトリを追加し、春にプロパティファイルを読み込みます。
- 20. Mavenクラスパスにリソースを追加する方法
- 21. テストの実行中にMavenビルドがjava.lang.ClassNotFoundExceptionをスローする
- 22. ThreadPoolを実行中に追加する
- 23. SpringBootコマンドラインにクラスパスを追加する
- 24. コマンドラインからmaven jettyプラグインのクラスパスにディレクトリを追加する方法はありますか
- 25. JARファイルのクラスパスに現在のディレクトリを追加する
- 26. Maven - 統合テストを追加
- 27. Eclipse Mavenプロジェクトのクラスパスにアンマネージ依存関係を追加
- 28. Maven経由でSpringブートアプリケーションを実行する際に、コマンドラインで追加のクラスパスを指定する方法は?
- 29. Tensorflow seq2seq実行中にvocabに追加
- 30. リフレクショントリックを使わずに実行時にクラスパスにjarファイルを追加する
機能的には問題ありませんが、秩序性に関してはフェーズはgenerate-test generate-test-sourcesではなく-resources? – thSoft