0

(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ません。

モカにモジュールで定義されたテストを認識させるために何ができるかについて、誰か提案がありますか?

4

1 に答える 1

1

「mocha.run()」を呼び出す場所がわかりません 上記のテストの前に実行される場合、それが 1 つの理由である可能性があります。

ロジックを非同期スレッドからインライン フローにヤンクすることで、物事のタイミングを制御できます。

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

})();
于 2013-02-11T01:10:41.167 に答える