gpt4 book ai didi

java - 在 Eclipse 项目之外以编程方式运行 JUnit 测试

转载 作者:行者123 更新时间:2023-11-29 09:16:14 26 4
gpt4 key购买 nike

我正在尝试从在 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());
}

最佳答案

试试这段代码

new BufferedReader(new InputStreamReader(this.getClass().getResourceAsStream("filename")));

如果您的文件与 java 类位于同一目录中,则应该加载它。

更新

在这种情况下,尝试在运行 JUnits 测试时指定工作目录

-Duser.dir=somedir

关于java - 在 Eclipse 项目之外以编程方式运行 JUnit 测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9309112/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com