了解启用超时

Understanding enableTimeouts

mocha 1.21.0中引入了一个新的设置enableTimeouts (true/false);和相应的 --no-timeouts 命令行参数。

问题是,没有记录

它涵盖了哪些用例?什么时候禁用超时有用?

Mocha 很早就支持关闭超时了。使用 timeout(0) 也会禁用超时。 enableTimeouts() 允许而 timeout() 不允许的是关闭和打开超时,而不会忘记关闭之前的超时。例如:

describe("foo", function () {
    this.timeout(500);

    describe("no timeout", function () {
        this.enableTimeouts(false);

        it("without a timeout", function (done) {
            setTimeout(done, 1000);
        });

        describe("timeout", function () {
            this.enableTimeouts(true);
            // From this point on, we are back to a timeout of 500ms.

            it("with a timeout", function (done) {
                setTimeout(done, 1000);
            });
        });
    });
});

我在设计测试时禁用了超时,因为我可能不会马上知道什么是合适的限制。因此,当我进行测试时,超时被禁用,然后我以合理的值重新启用它。

我还没有遇到 不得不 永久禁用超时以使测试套件正常工作的情况。