我试图检查一个文件是否存在于我的摩卡测试中。我知道这个文件存在于测试文件夹中(为了简单起见,我将它放在那里),但我试着让它起作用。但不管我做什么,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