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>