Javascript node.js和mocha qunit ui:使用异步requirejs依赖项进行测试

Javascript node.js和mocha qunit ui:使用异步requirejs依赖项进行测试,javascript,node.js,asynchronous,mocha.js,qunit,Javascript,Node.js,Asynchronous,Mocha.js,Qunit,首先简要说明:以下截取的测试从未执行: setTimeout(function() { test("test", function() { ok(true, "okay"); }) }, 1000); 有没有办法不自动启动mocha qunit ui,而是等待一些异步回调来创建测试 那么,为什么我需要这样呢 我正在尝试使用nodejs和mocha-qunit用户界面为我的类运行浏览器测试。这些类由requirejs异步加载 所以我可以创建一个这样的测试: te

首先简要说明:以下截取的测试从未执行:

setTimeout(function() {
    test("test", function() {
        ok(true, "okay");
    })
}, 1000);
有没有办法不自动启动mocha qunit ui,而是等待一些异步回调来创建测试


那么,为什么我需要这样呢

我正在尝试使用nodejs和mocha-qunit用户界面为我的类运行浏览器测试。这些类由requirejs异步加载

所以我可以创建一个这样的测试:

test("test", function() {
    stop();
    requirejs(
        ['Dependency'],
        function(Dependency)
        {
            expect(1);
            var d = new Dependency();
            ok(d.test(), "test");
            start();
        }
    );
 }
但是我想在具有相同依赖项的同一类上运行多个测试,所以我考虑创建一个测试对象

var d = new Dependency();

在测试之外。但是测试将在一个异步调用中,因此永远不会被调用。

好吧,我对mocha qunit ui插件不是特别熟悉,但是你可以使用它告诉它在你准备好之前不要运行(这样你就可以先加载你所有的类,等等):


QUnit.config.autostart=false;//在添加实际测试之前,请确保已设置此选项
要求(
[“无论什么”,“你的”,“依赖”,“是”],
函数(){
QUnit.start();//告诉QUnit你准备好出发了
}
);

我希望您可以在异步调用中创建测试对象,也可以在异步调用中调用
test
函数,但是测试套件会在之前完成,因此此测试永远不会执行。谢谢。结果我在某个地方把
autostart
设置为true,然后就忘了。
<script src="path/to/qunit.js"></script>
<script>
QUnit.config.autostart = false; // be sure this is set BEFORE you add your actual tests
require(
    [ "whatever", "your", "dependencies", "are" ],
    function() {
        QUnit.start(); // tell QUnit you're ready to go
    }
);
<script>