如果 mocha 测试花费的时间比给定的时间短,我怎么会失败?
How can I fail a mocha test if it takes shorter than a given time period?
我正在尝试测试的场景:我想确保文件未被缓存,因此通常需要 >10 秒的进程执行并完成。
如果 mocha 测试的完成时间少于 10 秒,我希望它无法通过。我已经在 Whosebug 上查看了文档和其他问题。我该怎么做?
谢谢!
编辑:这个测试模式可能并不理想 - 我主要只是想知道这个特定问题会出现什么。
您可以在任务开始之前的时间和任务完成的时间之间进行比较,并断言两者之间的差异 >=
是您想要的。类似于:
function doSomethingSlow(time){
// wait time and resolve
return new Promise(resolve => setTimeout(resolve, time))
}
// failed
let start = new Date
doSomethingSlow(2000).then(() => {
let finish = new Date
// assert(finish - start > 5000)
console.log("did it take longer than 5 seconds: ", finish - start > 5000)
})
另外,请注意 mocha 对测试施加了时间限制。请参阅 here 以更改它,但请理解限制是存在的,因为长 运行 测试通常不被接受。通过停止 network/file 访问,您通常可以使测试同样有效且更快。
我正在尝试测试的场景:我想确保文件未被缓存,因此通常需要 >10 秒的进程执行并完成。
如果 mocha 测试的完成时间少于 10 秒,我希望它无法通过。我已经在 Whosebug 上查看了文档和其他问题。我该怎么做?
谢谢!
编辑:这个测试模式可能并不理想 - 我主要只是想知道这个特定问题会出现什么。
您可以在任务开始之前的时间和任务完成的时间之间进行比较,并断言两者之间的差异 >=
是您想要的。类似于:
function doSomethingSlow(time){
// wait time and resolve
return new Promise(resolve => setTimeout(resolve, time))
}
// failed
let start = new Date
doSomethingSlow(2000).then(() => {
let finish = new Date
// assert(finish - start > 5000)
console.log("did it take longer than 5 seconds: ", finish - start > 5000)
})
另外,请注意 mocha 对测试施加了时间限制。请参阅 here 以更改它,但请理解限制是存在的,因为长 运行 测试通常不被接受。通过停止 network/file 访问,您通常可以使测试同样有效且更快。