簡體   English   中英

為什么我在使用OSX而不是Windows的Java中遇到找不到文件的錯誤?

[英]Why am I getting a file not found error in java using OSX, but not Windows?

我是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?

首先,我建議使用File.separator而不是斜杠,因為可以保證它們是跨平台的。

如果這樣無法正常工作,您可以嘗試以下操作:

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

這將打印您所在的實際目錄。也許您不在您認為的位置?

我想到了。 我必須在運行>編輯配置> TestNG下編輯工作目錄。 當我導入項目時,它會自行設置該工作目錄,並且設置錯誤的地方!

當dataSourcePath設置為src / test / resources /時,它沒有打印user.dir的原因是它在碰到那段代碼之前就出錯了。

總體而言,如果您知道設置IntelliJ的工作,那么這是一個非常簡單的解決方案。

謝謝大家的幫助! 我學到了各種各樣的新東西。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM