依赖项不在类路径中的测试资源?
我有一个使用Maven设置的多模块Spring项目:
my-root (pom)
- my-logic
- my-webapp (depending on my-logic)
- my-consoleapp (depending on my-logic)
我的测试类继承自 并用于设置 .AbstractTransactionalJUnit4SpringContextTests
@ContextCofiguration
ApplicationContext
例如,弹簧控制器的测试类:
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = {
"classpath:applicationContext-logic-test.xml",
"classpath:applicationContext-web-test.xml"})
public class ControllerTest extends AbstractTransactionalJUnit4SpringContextTests {
@Autowired
private ApplicationContext applicationContext;
...
}
如您所见,每个模块都有一个配置 XML。我有单独的配置用于tesing,驻留在每个模块的测试/资源中(并且具有后缀“-test”)。如果我在 Eclipse 中运行 JUnit 测试,这一切都有效(类编译、运行和 JUnit 测试成功)。
现在来看看我的问题:使用Maven运行测试将不起作用!(例如,在“Run As”>“Maven install”(我使用m2eclipse)的情况下)。具体来说,它将引发以下异常:my-root
java.io.FileNotFoundException: class path resource [applicationContext-logic-test.xml] 無法開啟,因為它不存在。
Maven 似乎没有将 中的文件添加到运行 的单元测试时设置的类路径中。my-logic/src/test/resources
my-webapp
我该如何解决这个问题?