4

プログラムでモカを実行しようとしています。ランナーのコードは次のとおりです。

var Mocha = require("mocha");
var mocha = new Mocha();
mocha.reporter('list').ui('bdd').ignoreLeaks();
//Here the serv_paths variable is defined, -- this code snippet is skipped
// ...
serv_paths.forEach(function(file){
mocha.addFile(file);
});
var runner = mocha.run(function(){ });

テストは非常に単純です。

 var assert = require("assert");
    describe('True!', function(){
        it('true = true', function(){
        assert.equal(true, true);
        });
        it('true = false', function(){
            assert.equal(true, false);
        });
        it('true = false -- second', function(){
            assert.equal(true, false);
    });
        it('true = true', function(){
            assert.equal(true, true);
        });
    });

モカは最初の失敗の前にテストを実行し、終了して他のテストを無視します。

出力は次のとおりです。

  [Jan 21 04:57:23]   ✓ True! true = true: 0ms
    [Jan 21 04:57:23]   1) True! true = false
    [Jan 21 04:57:23]   ✖ 1 of 4 tests failed:
    [Jan 21 04:57:23]   1) True! true = false:
     AssertionError: true == false
          at Context.<anonymous> (/home/ubuntu/project/plugins-server/cloud9.ide.help/test_test.js:14:10)
          at Test.run (/home/ubuntu/project/node_modules/mocha/lib/runnable.js:213:32)
          at Runner.runTest (/home/ubuntu/project/node_modules/mocha/lib/runner.js:343:10)
          at /home/ubuntu/project/node_modules/mocha/lib/runner.js:389:12
          at next (/home/ubuntu/project/node_modules/mocha/lib/runner.js:269:14)
          at /home/ubuntu/project/node_modules/mocha/lib/runner.js:278:7
          at next (/home/ubuntu/project/node_modules/mocha/lib/runner.js:226:23)
          at Array.<anonymous> (/home/ubuntu/project/node_modules/mocha/lib/runner.js:246:5)
          at EventEmitter._tickCallback (node.js:190:38)

Mocha にすべてのテストを実行させる方法はありますか?

4

1 に答える 1

8

Mocha のソースコードを掘り下げた後、(私たちの状況では) 次のように機能することがわかりました。mochaスイートのセットアップにパラメータ「bail」を追加しました

test.html

<script src="mocha.js"></script>
<script>
  mocha.ui('bdd');
  mocha.bail(false);//<-- this line is the magic
  mocha.reporter('html');
</script>

bail パラメータを追加すると、最初の失敗後に実行が停止しなくなります。デフォルトでは、このパラメーターは false (コマンドラインから実行する場合) のようですが、phantomjs を介してテストを実行する場合は true です。(Mocha v1.8.1 を使用)

于 2013-02-18T14:45:41.993 に答える