我试图在我的(Require.js)环境中运行Mocha(浏览器版本,而不是Node),但我遇到了一个奇怪的问题。
如果我这样做:
<script src="require.js" data-main='mochaTestMain.js'></script>
然后在mochaTestMain.js中执行以下操作:
require(['someFile'], function() {
describe('foo', function() {
it('foo', function() {
chai.expect(false).to.equal(true)
});
});
});
我的“foo”规格结果显示出来。但是,如果我在someFile.js
(define
语句内)中放置完全相同的测试,则测试不会显示;就像摩卡从来没有意识到它存在。如果我在console.log
中添加describe
,则会显示,但如果我在it
中添加一个,则不会。{/ p>
有没有人建议我如何让Mocha识别模块中定义的测试?
答案 0 :(得分:1)
我看不到你在哪里调用“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的内容:
;(function(){
require(["someTestFile"], function(setUpTests){
// defining of the test must come before
setUpTests()
// you run the test suite
mocha.run()
})
})();