让QUnit按顺序运行测试

use*_*497 8 javascript testing qunit

我用qunit编写了一系列javascript代码测试.现在由于某种原因,我的列表中的第一个测试将运行,然后列表中的最后一个测试运行,然后是第二个到最后一个,第三个到最后一个,第四个到最后一个等等...这对我的测试至关重要事情按照我让他们进入的顺序运行.我尝试关闭该选项,其中qunit运行上次失败的测试,但它仍然这样做.有没有什么办法解决这一问题?

Ste*_*ill 11

首先,弄清楚为什么你的测试必须按特定顺序运行.单元测试的重点是测试是原子的,应该可以按任何顺序运行它们 - 如果你的测试套件不具备这个功能,你需要找出原因,因为它可能代表一个更大的问题.

如果您无法弄清楚,那么您可能需要将测试套件分成更小的测试组,直到找到导致问题的那个.

编辑:在http://www.educatedguesswork.org/2011/06/curse_you_qunit_1.html上找到此参考.显然,将其添加到您的测试套件将有所帮助QUnit.config.reorder = false;

  • @ user1028497"某些测试依赖于先前测试的结果"然后您没有原子性 - 您应该准备测试本身所需的测试. (2认同)
  • 如果你不能进行原子测试,你可以考虑只编写一个测试,它会调用你自己的函数.该函数可以按照您想要的顺序执行所有操作,共享状态,如果一切都通过,则返回true或false.输出诊断到控制台.只将那些必须共享状态的东西组合在一起.它更笨拙但更诚实 - 如果你依赖于测试顺序,你的代码不应该在单独的测试块中,因为它们应该是原子的. (2认同)