为什么我在使用OSX的java中找不到文件找不到错误,而不是Windows?

时间:2014-06-03 18:59:43

标签: java macos intellij-idea

我是一个java n00b,所以请原谅任何无知。

我正在尝试在OSX上的IntelliJ中运行TestNG测试,但是当我这样做时,我得到以下文件未找到错误:

File: src/test/resources/manager/MemberTest/testCreating.csv not found.

然而,当我的同事在他们的Windows机器上运行它时,测试完成并且他们没有得到相同的错误。其中一位同事的档案位于

D:\trunk_QA\src\test\resources\manager\MemberTest\testCreating.csv

我的位于

/Users/username/QA Materials/Automation/Framework/trunk_QA/src/test/resources/manager/MemberTest/testCreating.csv

dataSourcePath似乎被正确布局为相对路径:

private static String dataSourcePath = "src/test/resources/";

当使用该dataSourcePath运行时,我收到错误。

如果我更新它以使用我的本地绝对路径:

private static String dataSourcePath = "/Users/username/QA Materials/Automation/Framework/trunk_QA/src/test/resources/";

然后测试通过。但是,我无法检查这一点,因为除了使用绝对链接的不良做法外,它将打破我同事机器的测试。

我做错了什么?我是否需要定义系统变量,例如CLASSPATH?

2 个答案:

答案 0 :(得分:0)

首先,我建议使用File.separator而不是斜杠,因为它们将保证是跨平台的。

如果这不起作用,你可以试试这个:

System.out.println(new File(".").getCanonicalPath());

这将打印您所在的实际目录。也许您不在您认为的位置?

答案 1 :(得分:0)

我明白了。我必须在Run> Edit Configurations> TestNG下编辑工作目录。当我导入项目时,它将所有工作目录设置为自己的,并且是错误的!

当dataSourcePath设置为src / test / resources /时,它没有打印user.dir的原因是它在达到该代码块之前错误输出。

总的来说,如果你知道自己在设置IntelliJ时做了什么,这是一个非常简单的解决方案。

感谢大家的帮助!我学会了各种各样的新东西。