私はIDEAでmavenによって管理されているプロジェクトを持っています。「src」の下に統合テスト用のカスタム ディレクトリを作成し、「intg」という名前を付けます。
myproject
|- src
|- intg
|- |- java
|- |- resources
|- main
|- |- java
|- |- resources
|- test
|- java
|- resources
私のPOM.xmlに、次を追加しました:
<build>
<plugins>
<plugin>
<artifactId>maven-resources-plugin</artifactId>
<version>2.6</version>
<executions>
<execution>
<id>copy-resources</id>
<phase>validate</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<outputDirectory>${project.basedir}/target/test-classes</outputDirectory>
<resources>
<resource>
<directory>${project.basedir}/src/intg/resources</directory>
</resource>
</resources>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
次に、IDEA で POM.xml を再インポートしましたが、IDEA は「リソース」ディレクトリをテスト ソース ルート ディレクトリとして扱わないことがわかったため、手動で「テスト ソース ルート」としてマークしました。
次に、ファイル「test-data.txt」を配置し、テスト コードで取得します。
@Test
public void shouldGetTheFileFromClasspath() {
URL resource = MyTest.class.getClassLoader().getResource("test-data.txt");
assertNotNull(resource);
}
残念ながら、テストは失敗しました。「test-data.txt」を「src/test/resources」に移動すると、パスします。
どこが間違っているのか、どのように修正すればよいのかわかりません。それは私を一日中苦しめてきました、助けてください〜