我在src/
中创建了一个新的源文件夹。目录结构如下:
src/main/java
src/main/resources
src/test/java
src/test/resources
src/integrationTest/java
src/integrationTest/resources
在integrationTest
中,我创建了一些测试,并根据以下问题设置了配置:Add multiple source test directories for tests
现在,当我运行测试时,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
}