我正在使用 TestCafe 和 Node.JS 编写一个自动化测试脚本。其中一项测试是下载文件并验证下载是否完成。我不想写硬编码
await t.wait(4000);
因为由于我的测试是基于数据驱动的框架,所以我可以为它提供大量具有许多不同文件和文件类型的数据。因此,文件大小可能会从几 KB 到千兆字节不等。
所以写
await t.wait(4000);
可能适用于一个测试用例,但几乎肯定会在其他测试用例中失败。
我正在使用依赖项“下载文件夹”来发现本地系统上下载文件夹的路径。从那里我寻找我期望在那里的特定文件。它适用于快速下载的小型文本文件和小型 zip 文件。但是,一旦我尝试下载包含大量数据的非常大的 zip 文件,它就会失败
if (fs.existsSync(zipFileNameAndPath)) {
await t.expect(true).eql(true); // Report it as a success.
} else {
console.log('file does NOT exist: ' + zipFileNameAndPath);
await t.expect(false).eql(true); // Report it as a failure!
}
所以我的问题是:
有没有办法做类似的事情
if (fs.existsSync(zipFileNameAndPath){[ timeout: 50000000]}) {...} else {...}
产生的超时将作为动态超时工作,等待查看何时找到文件,如果在超时到期之前找到它,那么它将返回 true,并且只有在超时期限过后才会返回 false?
我正在寻找一个对 Lodash 或 JQuery 之类的东西没有任何依赖关系并且在 ES6 中运行良好的同步答案。