我試圖檢查一個文件是否存在於我的摩卡測試中。我知道這個文件存在於測試文件夾中(爲了簡單起見,我將它放在那裏),但我試着讓它起作用。但不管我做什麼,fs.existsSync總是失敗。 Logger.startup()創建文件。 Logger.getFilename()返回一個值,如5-17-30-2013.log。我是摩卡新手,所以如果我犯了一個經典失誤,我不知道。據我所知,我正在同步使用摩卡。感謝所有的幫助。摩卡fs.existsSync始終失敗
這裏是我的摩卡測試腳本:
var logger = require('../logger');
var fs = require('fs');
describe("Logger", function() {
it("Creates a file", function() {
logger.startup();
console.log(logger.getFilename());
if (!fs.existsSync(logger.getFilename())) {
throw ("Logging File Does Not Exist");
}
})
})
比下面的答案更好,請嘗試使用require('path')。resolve(logger.getFilename())。 path.resolve返回給定(可能)相對文件名的絕對路徑。 – jjm
現在它正在加載一個文件在同一目錄(所以我需要的是電影文件名),但我確實嘗試了一段時間的絕對路徑也沒有成功。另外,作爲一個說明,我可以嘗試通過在fs exists sync調用中預先添加「test /」來檢查文件是否完全從腳本記錄器中存在(但不是在摩卡中) –
腳本位於相同的目錄中並不意味着所有你需要的是文件名。在具有問題的腳本中執行此操作: console.log('ls -l',path.resolve(logger.getFilename())); 它將打印出類似「ls -l /Users/jon/stuff/fn.txt」的內容。 在shell中,運行打印的行。現在你知道文件是否存在。 – jjm