我们的代码(未测试的代码)读取文件的目录,这意味着工作目录的需要设置正确,当我们运行的代码。

当启动一个JUnit试验从食,启动配置自动得到建立。问题是,这一工作目录在于启动配置总是默认情况下根本项目的目录,该目录总是错误的,测试失败,我有打开的启动构成对话,改变工作目录和重新启动测试。这是非常令人讨厌。同样的事情发生,当我运行一个单一的试验方法。

我已经考虑过这些:

  • 改变目前的目录中,从试验的代码-不可能通过设计。
  • 打开文件时,通过一个父目录参数-太困难的,因为这将影响到很多地方。
  • 使用 复制的启动配置 特蚀,以创建新启动配置,从现有的那些已经有一个正确的工作目录的设定。这并不真正有意义的这里,因为我想要启动一个试验或测试的方法很快,仅仅通过援引"执行这一试验方法/方法作为JUnit测试"。

所有的一切,它看起来像它的责任的食,不代码。

有没有一种方法来设定 默认的 工作目录 所有未来,新创建的 JUnit启动配置?

有帮助吗?

解决方案 2

我可以告诉中,没有任何方法的改变默认的工作目录未来JUnit启动配置在日食3.4.这一问题也已经 报告为一个错误 在日食错误的数据库。

然而,它能够在的想法。还有 编辑默认值 按钮,用于设置的各种违约为每个启动配置类型分开。

其他提示

这是一个主观的回答:

我相信你在做你的测试是错误的,你不应该载入文件从JUnit使用相对或完整的路径,但是,让他们作为资源的项目(把它们添加到建立道路)和加载它们作为资源JUnit测试。这样,如果事情变化的文件系统上,有人使用一种不同的文件系统或IDE但仍具有它们在生成路径(作为源文件夹)你不会有问题。

我不确定如果这是你的意思但如果你真的想去改变它去运行配置的选择->你JUnit->参数的标签,在底部(蚀3.4)你看到工作的目录,点击"其他"并改变它。

与蚀3你可以设置你的工作目录。去你跑/配置调试->的参数标签。在工作目录选择"其他"和进入根目录测试

我还没有找到一个可能做到这一点,但是你可以做的是使用:

getClass().getResourceAsStream(filename);

getClass().getClassLoader().getResourceAsStream(filename);

这种方法找到资源上的类路径。第一种是相对的位置,第二个是相对于任何类路径"根输入"。然后你可以用实例添加该项目的根本目录的类路径。

这不起作用但如果你想要写入文件。

如果你的测试取决于当前工作的目录,我认为这是责任的测试设置的正确的工作目录,并配置课程进行测试点的目录。

如果你有一个超大多数的测试,编写一个恒定。或者:如果你有一个超大多数的测试,编写一@之前安装的方法。或者:如果你有没有超类大多数的测试,编写一个恒定在一些类测试的代码。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top