我正在创建一个基于 QUnit 的自动化测试框架,如果测试时间过长(超时),我希望能够终止测试。现在,我当前的实现非常简单:在测试开始时,我设置了一个计时器并等待。如果到那时测试尚未完成,我将其标记为失败并重新加载<iframe>
正在运行的测试。
如果它正在等待 AJAX 调用,或者异步测试永远不会返回,这将非常有用。但是,该setTimeout
函数将始终在当前执行线程之后运行,因此如果测试进入无限循环,或者在其标准执行中花费的时间过长,它不会真正停止它,而是坐下来等待它的转动而不打断它。有没有办法取消子代码<iframe>
(在同一个域中)中的代码执行,即使它卡在循环中?