2017-04-18 89 views
0

我想运行一个测试,从我们的Web应用程序下载文件。然而,我遇到的问题是该文件已存在,并且我有一个if语句来处理它并在下载另一个之前将其删除。问题是,它永远不会进入if声明。检查文件是否使用量角器在Windows上下载

我知道我的文件路径是正确的。还有什么我在这里做错了吗?

const fs = require('fs') 
 
    fit('Download Visible Records',() => { 
 
     const filename = `C:\\Users\\me\\Downloads\\DataExport_2017-04-18-10-04am.csv` 
 
     if (fs.existsSync(filename)) { 
 
      console.log('Are we getting here??') // NEVER ACTUALLY GETS HERE EVEN THOUGH THE FILE DOES EXIST 
 
      // Make sure the browser doesn't have to rename the download 
 
      fs.unlink(filename) 
 
      console.log('how about here?') 
 
     } 
 
     claims.downloadVizRecords() 
 
     browser.driver.wait(() => { 
 
      expect(fs.existsSync(filename)).toBe(true) 
 
     }, 10000) 
 
    })

+0

我创造了我的文件下载测试前一段时间,所以我不记得我是如何得出这个结论,但我有一个额外的参数在我的'existsSync'函数中。 'fs.existsSync('filepath',fs.R_OK);',根据fs docs的是一个“标志表明该文件可以被调用进程读取”。这能解决你的问题吗? – Gunderson

+0

@Gunderson非常感谢您的建议,但是这并没有解决问题。 – DarthOpto

+0

@Gunderson因此,看起来我的程序正在运行测试。我从一个mac上运行一个windows计算机,不具有对该文件的读/写访问权限。即使将目录的权限更改为“Everyone”具有完全访问权限后也是如此。 – DarthOpto

回答

0

我的代码工作正常:

if (fs.existsSync('D:/CI/script/result/Report.html')) { 
    fs.unlinkSync('D:/CI/script/result/Report.html'); 
}