最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

javascript - Non-blocking asynchronous tests using QUnit - Stack Overflow

programmeradmin1浏览0评论

It seems that the QUnit functions stop() and start() allow to wait for asynchronous tests, but during that waiting period the whole test suite hangs. Is there a way to run asynchronous tests in a non-blocking fashion using QUnit?

It seems that the QUnit functions stop() and start() allow to wait for asynchronous tests, but during that waiting period the whole test suite hangs. Is there a way to run asynchronous tests in a non-blocking fashion using QUnit?

Share Improve this question edited Dec 16, 2011 at 10:09 Nathan 11.2k4 gold badges40 silver badges50 bronze badges asked Dec 8, 2011 at 12:39 RandomblueRandomblue 116k150 gold badges363 silver badges558 bronze badges
Add a ment  | 

1 Answer 1

Reset to default 8 +50

Looking at the docs for asyncTest and stop, there's two reason's I can see that it's set up like that.

  1. So that you aren't accidentally running two tests at a time which might conflict with something (ie, modifying the DOM and so changing each others' test results).
  2. So that QUnit knows when the tests have finished. If it es to the end of all the synchronous tests, then it'll write up the results, which you don't really want it to do if there are still async tests happening in the background.

So these are a good thing, and you probably don't actually want the async tests to not block as they run. You could probably do it by calling start immediately after the start of your async tests, but remember, JavaScript is actually single threaded (even though it sometimes gives the appearance of multi-threading), so this might cause unexpected results, as you can't guarantee when your async test will continue running... it might not (probably won't) be until after the other tests have finished and the results have been published.

发布评论

评论列表(0)

  1. 暂无评论