我试图从在Eclipse中正在开发中,像这样的应用程序运行JUnit测试:编程以外的Eclipse项目的运行JUnit测试
JUnitCore junitCore = new JUnitCore();
ClassLoader cl = Main.class.getClassLoader();
Class<?> test = cl.loadClass("test.TestCase1");
Result r = junitCore.run(test);
这运行正常,但如果测试用例需要使用一些文件,我得到一个FileNotFoundException
。在Eclipse项目中运行相同的测试,测试没有这样的错误。我认为这是因为我的JVM的工作目录(在user.dir
属性中定义)不同于Eclipse项目。据我所知,我不能在正在运行的JVM中更改user.dir
。
我该怎么做才能改变这种行为?我唯一的选择是使用与Eclipse项目相同的工作目录来启动新的JVM吗?如果是这样,我该怎么做,最好不要使用像Ant这样的工具?
编辑: 这是一个通过了Eclipse项目测试的例子,并产生FileNotFoundException
当我编程方式运行,它的项目之外:
@Test
public void test() throws Exception {
FileInputStream fstream = new FileInputStream("test1.txt");
DataInputStream in = new DataInputStream(fstream);
BufferedReader br = new BufferedReader(new InputStreamReader(in));
assertEquals("file content", br.readLine());
}
您能否显示加载您的文件的代码片段? – Anton 2012-02-16 10:11:39
@Umar你的意思是加载文件的测试示例?我会为你编辑它。 – aperez 2012-02-16 10:35:08
只是好奇地想知道,为什么你想写一个应用程序来运行junit,当你在eclipse中默认有junit插件? – 2012-02-16 15:33:27