摩卡+需要问题

时间:2013-02-09 02:03:31

标签: requirejs mocha

我试图在我的(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.jsdefine语句内)中放置完全相同的测试,则测试不会显示;就像摩卡从来没有意识到它存在。如果我在console.log中添加describe,则会显示,但如果我在it中添加一个,则不会。{/ p>

有没有人建议我如何让Mocha识别模块中定义的测试?

1 个答案:

答案 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()
    })

})();