Requirejs 摩卡咖啡&x2B;要求发行
我试图在(Require.js)环境中运行Mocha(浏览器版本,而不是节点),但遇到了一个奇怪的问题 如果我这样做:Requirejs 摩卡咖啡&x2B;要求发行,requirejs,mocha.js,Requirejs,Mocha.js,我试图在(Require.js)环境中运行Mocha(浏览器版本,而不是节点),但遇到了一个奇怪的问题 如果我这样做: <script src="require.js" data-main='mochaTestMain.js'></script> 我的“foo”规格结果显示出来。但是,如果我将完全相同的测试放在someFile.js中(在define语句中),测试不会显示;就好像摩卡从未意识到它的存在。如果我在description中添加console.log,它会显示
<script src="require.js" data-main='mochaTestMain.js'></script>
我的“foo”规格结果显示出来。但是,如果我将完全相同的测试放在someFile.js
中(在define
语句中),测试不会显示;就好像摩卡从未意识到它的存在。如果我在description
中添加console.log
,它会显示出来,但是如果我在中添加一个它
它不会显示出来
有人对我能做些什么让Mocha识别模块中定义的测试有什么建议吗?我看不出你在哪里调用“Mocha.run()”,如果它在上述测试之前运行,这可能是一个原因
您可以通过将逻辑从异步线程中拉出来,进入内联流来控制事情的计时:
someTestFile.js的内容:
;(function(){
function setUpTests(){
describe('foo', function() {
it('foo', function() {
chai.expect(false).to.equal(true)
})
})
}
// note, we are returning a test "constructor"
define(function(){return setUpTests})
})();
mochaTestMain.js的内容:
require(['someFile'], function() {
describe('foo', function() {
it('foo', function() {
chai.expect(false).to.equal(true)
});
});
});
;(function(){
require(["someTestFile"], function(setUpTests){
// defining of the test must come before
setUpTests()
// you run the test suite
mocha.run()
})
})();
我有一个mocha.run()
,但我有一个require
,在那里我应该有一个define
(反之亦然;我忘了),这把一切都搞砸了。谢谢你的建议。