【问题标题】:How to detect when all tests within a QUnit module is completed?如何检测 QUnit 模块中的所有测试何时完成?
【发布时间】:2012-01-12 04:13:59
【问题描述】:

为了测试排序以及防止测试被中断。

另外,有没有什么方法可以中途停止模块或测试并重置 QUnit(包括所有历史结果)?

QUnit.moduleDone 是我尝试测试模块完成的唯一方法。但它适用于模块中的每一个测试,而不仅仅是整个模块。

【问题讨论】:

    标签: javascript jquery unit-testing qunit regression-testing


    【解决方案1】:

    这取决于声明测试时 QUnit 是否正在运行。如果停止它,声明所有测试,然后启动它,moduleDone 回调将在模块结束时触发一次。如果它在声明测试时正在运行,那么测试将在声明后立即运行,从而导致模块仅包含到目前为止已声明的测试,并且它认为每个测试完成后模块都已完成。

    done 回调也会出现同样的问题,如果在声明测试时 QUnit 正在运行,则会连续触发。

    因此,如果您使用这些回调中的任何一个,您确实需要在头部同步加载所有测试,以便在加载事件中 QUnit 自动启动时它们存在,或者设置 QUnit.config.autostart = false 并且不调用 QUnit.start 直到所有异步加载的脚本已经完成了他们的测试声明。

    【讨论】:

      【解决方案2】:

      你确定 QUnit.moduleDone 吗?对我来说,它在模块结束时被调用一次;你所描述的听起来像 QUnit.testDone。

      至于停止 QUnit 并重置它,希望网页之后会是什么样子?

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2023-04-03
        • 2014-06-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-01-29
        • 1970-01-01
        相关资源
        最近更新 更多