Я создал новую исходную папку в моем src/
.Структура каталогов выглядит следующим образом:
src/main/java
src/main/resources
src/test/java
src/test/resources
src/integrationTest/java
src/integrationTest/resources
В integrationTest
я создал несколько тестов и настроил конфигурацию в соответствии с этим вопросом: Добавить несколько исходных каталогов тестов для тестов
Теперь, когда я запускаю тесты, файл в main пытается прочитать ресурс из его пути к классу, но получает исключение для файла, который не найден.Этот же файл при чтении во время работы приложения работает нормально.Как добавить его в путь к классу интеграционной тестовой задачи?Я не уверен, стоит ли мне задавать этот вопрос.
Затрагиваемый код: MyBatis SqlSession, который внутренне считывает предоставленный ему файл:
Caused by: java.io.FileNotFoundException: class path resource [foo/bar/dao/writer/writer-sql-map.xml] cannot be opened because it does not exist
at org.springframework.core.io.ClassPathResource.getInputStream(ClassPathResource.java:172)
at org.mybatis.spring.SqlSessionFactoryBean.buildSqlSessionFactory(SqlSessionFactoryBean.java:406)
at org.mybatis.spring.SqlSessionFactoryBean.afterPropertiesSet(SqlSessionFactoryBean.java:380)
at org.mybatis.spring.SqlSessionFactoryBean.getObject(SqlSessionFactoryBean.java:547)
Части файла Gradle:
sourceSets {
integrationTest {
java {
compileClasspath += files(main.java.outputDir) + files(test.java.outputDir)
runtimeClasspath += files(main.java.outputDir) + files(test.java.outputDir)
srcDir file('src/integrationTest/java')
}
}
}
configurations {
integrationTestCompile.extendsFrom testCompile
integrationTestRuntime.extendsFrom testRuntime
}
task integrationTest(type: Test){
testClassesDirs = sourceSets.integrationTest.output.classesDirs
classpath = sourceSets.integrationTest.runtimeClasspath
}