私が使用しているグローバルオブジェクトの周りのモカテストに大きな問題があります。私はまったく同じエラーを出さないが問題のある(バグ?)挙動を例証する次のMREを生成することができます。どんな洞察も高く評価されるだろう。Mocha Global Scoping Issues
私は/lib
に次のmain.js
ファイルを持っている:
exports.exec = function(){
console.log(test);
}
が続い/test/test.js
に次の
var should = require('should');
var main = require('../lib/main');
global.test = {something: 1};
describe('normal test', function(){
beforeEach(function(){
global.test = {another: 2};
}),
afterEach(function(){
delete global.test;
});
it ('might work with global', function(){
main.exec();
})
});
最後に、これはtest/test2.js
です:
var should = require('should');
var main = require('../lib/main');
global.test = {third: 3};
describe('some test', function(){
it ('messes up global', function(){
main.exec();
})
});
私がいることを期待します最初のテストは01を出力しますとなり、2番目の文字は{third: 3}
と表示されます。確かに、これは私がそれぞれのテストを独立して実行したときの動作です。例えば
[email protected]:~/workspace/mocha-test$ mocha test/test2.js
{ third: 3 }
․
1 passing (6ms)
NPMパッケージshould
とmocha
(1.16.1)との両方のテストを実行している場合しかし、私は次のような出力が得られます。
[email protected]:~/workspace/mocha-test$ mocha
{ another: 2 }
․․
1 passing (6ms)
1 failing
1) some test messes up global:
ReferenceError: test is not defined
at Object.exports.exec (/home/jeff/workspace/mocha-test/lib/main.js:3:15)
at Context.<anonymous> (/home/jeff/workspace/mocha-test/test/test2.js:8:10)
at Test.Runnable.run (/usr/lib/node_modules/mocha/lib/runnable.js:211:32)
at Runner.runTest (/usr/lib/node_modules/mocha/lib/runner.js:355:10)
at /usr/lib/node_modules/mocha/lib/runner.js:401:12
at next (/usr/lib/node_modules/mocha/lib/runner.js:281:14)
at /usr/lib/node_modules/mocha/lib/runner.js:290:7
at next (/usr/lib/node_modules/mocha/lib/runner.js:234:23)
at Object._onImmediate (/usr/lib/node_modules/mocha/lib/runner.js:258:5)
at processImmediate [as _immediateCallback] (timers.js:330:15)
もっと見ると、これは望ましくない動作であると自信を持っています。ここに問題を投稿してください:https://github.com/visionmedia/mocha/issues/1083 –
私もこの問題に遭遇しました。私は、単純なforループで各テストを独立して実行する簡単なファイルを作るのが最善だと思います。 –
あなたの問題はおそらく閉鎖されるでしょう - 私はそれに類似した問題があったと思います。ユーザーは、要求キャッシュを消去したがっていました。 https://github.com/visionmedia/mocha/issues/536 –