2016-05-27 21 views
1

私はnightwatchを使用してエンドツーエンドのテストを実行していますが、実行時にいくつかのグローバル設定に基づいて条件付きでテストを実行します。Nightwatchjsを使用して実行時に条件付きでテストを実行

// globals.js 
module.exports = { 
    FLAG: true 
}; 

// test.js 
describe('Something',() => { 
    it('should do something', client => { 
     if (client.globals.FLAG) { 
      expect(1).to.equal(1); 
     } 
    }); 
}); 

上記正常に動作しますが、私は黙っ全体のテストをしたいと条件付きit例えば、次のとおりです。私はnightwatch.jsでそれらを定義し、ファイルを除外してテストを省略することができます知っています

// test.js 
describe('Something',() => { 
    // client does not exist out here so it does not work. 
    if (client.globals.FLAG) { 
     it('should do something', client => { 
      expect(1).to.equal(1); 
     }); 
    } 
}); 

を私はこの実装で使用できるアプローチではありません。もう一つの解決策はタグを使うことですが、私はこれがMochaを使って可能であるかどうかはわかりません。

答えて

0

あなたのモジュールglobals.jsをインポートすることにより、第2の例ではフラグにアクセスできます。

// test.js 

const globals = require('../globals.js'); 

describe('Something',() => { 

    if (globals.FLAG) { 
     it('should do something', client => { 
      expect(1).to.equal(1); 
     }); 
    } 
}); 

あなたはまた、条件が満たされた場合にテストを無視する機能を作成することができます。

// test.js 

const FLAG = require('../globals.js').FLAG; 
const not = function(v){ return {it: v ? function(){}: it} }; 

describe('Something',() => { 

    not(FLAG).it('should do something', client => { 
     expect(1).to.equal(1); 
    }); 

}); 
+0

このかわいいです私がそれをやったやり方を要約して、 'when.SOMETHING.it'というカスタム構文を使っています。 –

関連する問題