Javascript 让QUnit按顺序运行测试

Javascript 让QUnit按顺序运行测试,javascript,testing,qunit,Javascript,Testing,Qunit,我已经使用qunit为我的javascript代码编写了一系列测试。现在由于某种原因,我的列表中的第一个测试将运行,然后列表中的最后一个测试将运行,然后是第二个到最后一个,第三个到最后一个,第四个到最后一个,等等。。。对于我的测试来说,事情按照我的顺序运行是至关重要的。我尝试关闭qunit运行上次失败的测试的选项,但它仍然这样做。有没有办法解决这个问题?首先,弄清楚为什么测试必须按特定顺序运行。单元测试的全部要点是测试是原子的,应该可以以任何顺序运行它们——如果您的测试套件不能做到这一点,您需要

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

首先,弄清楚为什么测试必须按特定顺序运行。单元测试的全部要点是测试是原子的,应该可以以任何顺序运行它们——如果您的测试套件不能做到这一点,您需要找出原因,因为它可能代表一个更大的问题

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


编辑:在找到此引用。显然,将其添加到测试套件将有助于
QUnit.config.reorder=false 

也许您可以考虑将每个主要计算的代码放置在一个函数中,该函数在开始时进行测试,以检查计算是否已经完成。如果没有进行计算,请进行计算并将结果保存在某个位置。如果计算已经完成,那么只需返回结果。通过这种方式,您可以对所有测试进行一次计算,但仍然可以自主完成测试的顺序


我可以提到单元测试中耗时的计算问题,但测试组必须能够进行任何单元测试并作为独立的自主测试执行。当出现一个关键问题并且必须具体解决时,尤其如此。

不,我知道原因。提高效率。(我不想谈细节,但现在每个测试都需要很长时间才能运行,我需要尽可能简化)。有些测试依赖于先前测试的结果。我可以让一切都原子化,但一切都需要比现在更长的时间。一旦我处于时间无关紧要的位置,我可能会恢复到原子模型,但现在我希望我的测试按照我编写它们的顺序运行,以提高效率。@user1028497“有些测试依赖于先前测试的结果”,那么你就没有原子性-你应该在测试本身中准备测试所需的内容。我是这样做的。但在这个时候我需要效率,这是最好的做事方式。我不想解释所有的事情,但只要说我需要按我的顺序运行测试。至于Qunt.Copy.RealStord= false行,我已经在QUncel文件中设置了RealOrto到false,这仍然在发生。如果你不能进行原子测试,你可以考虑只写一个测试,它调用你自己的函数。该函数可以按您想要的顺序执行所有操作,共享状态,如果所有操作都通过或未通过,则返回true或false。将诊断输出到控制台。只将那些必须共享状态的事物组合在一起。它更笨拙但更诚实——如果您依赖于测试顺序,那么您的代码不应该在单个测试块中,因为它们实际上应该是原子的。