使用QUnit的非阻塞异步测试

Ran*_*lue 4 javascript qunit

看来,QUnit功能stop(),并start()允许等待异步测试,但在这段等待期间整个测试套件挂起.有没有办法使用QUnit以非阻塞方式运行异步测试?

Nat*_*nes 8

查看asyncTest的文档并停止,有两个原因我可以看到它的设置就是这样.

  1. 这样你就不会意外地同时运行两个可能与某些东西冲突的测试(即修改DOM,从而改变彼此的测试结果).
  2. 因此,QUnit知道测试何时完成.如果它结束了所有的同步测试,那么它会写出结果,如果在后台仍然发生异步测试,你真的不希望它做.

所以这些都是好事,你可能实际上并不希望异步测试在运行时不会阻塞.您可以通过start在异步测试开始后立即调用来实现,但请记住,JavaScript实际上是单线程的(即使它有时会出现多线程),因此这可能会导致意外结果,因为您不能保证异步测试将继续运行...它可能不会(可能不会)在其他测试完成并且结果发布之后.