Lip*_*ang 5 java intellij-idea maven
我有一个文件test-mule-flow.xml
名下的src/main/app
文件,我添加了一个单元测试:
MuleFlowTest extends FunctionalTestCase
@Override
public String getConfigResources() {
return "src/main/app/test-mule-flow.xml";
}
@Test
public void test......
Run Code Online (Sandbox Code Playgroud)
实际上,当我在Eclipse(Mule Studio)和maven构建中执行时,这些测试都会正确执行,但不幸的是,这些测试在Intellij IDEA版本12中失败了.
而且我认为这是由classloader
IDEA中的源文件驻留在target/classes
文件夹中,并且测试类是房子target/test-classes
,这可能是原因,但我该如何配置呢?并且它以maven方式更好,我不想手动进行一些移动配置.
谢谢.
看起来您正在使用相对文件路径来加载文件.因此实际结果将取决于JVM执行测试的目录(它是"当前"目录).
这通常是个坏主意.如果文件应该与应用程序捆绑在一起,则存储它是src/main/resources并使用类加载器加载它:
InputStream in = MuleFlowTest.class.getResourceAsStream("/test-mule-flow.xml"));
Run Code Online (Sandbox Code Playgroud)
如果它是仅由测试使用的文件,则将其存储在src/test/resources中,并使用类加载器加载它(与上面相同).
如果确实需要将其作为文件加载,请确保当前目录始终是正确的,或者传递一个系统属性,告诉代码它应该使用哪个基目录来创建绝对路径.
您具有指定的相对路径,并且未提供有关如何实际读取此路径下的文件的信息.
在从类路径中读取的情况下,您应该确保它在那里.对于Maven,有一个将资源置于src\main\resources
或下的约定src\test\resources
.支持Maven的IDE通常会自动将这些位置添加到类路径中.如果由于某种原因您无法将文件放入resources
类路径中包含的其他位置,则可以在IDEA中手动配置项目的源目录.
在从文件系统读取文件的情况下,您应该检查IDEA中相应的运行/调试配置中的工作目录.
归档时间: |
|
查看次数: |
15347 次 |
最近记录: |