我是一个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?
答案 0 :(得分:0)
首先,我建议使用File.separator
而不是斜杠,因为它们将保证是跨平台的。
如果这不起作用,你可以试试这个:
System.out.println(new File(".").getCanonicalPath());
这将打印您所在的实际目录。也许您不在您认为的位置?
答案 1 :(得分:0)
我明白了。我必须在Run> Edit Configurations> TestNG下编辑工作目录。当我导入项目时,它将所有工作目录设置为自己的,并且是错误的!
当dataSourcePath设置为src / test / resources /时,它没有打印user.dir的原因是它在达到该代码块之前错误输出。
总的来说,如果你知道自己在设置IntelliJ时做了什么,这是一个非常简单的解决方案。
感谢大家的帮助!我学会了各种各样的新东西。