2016-05-27 2 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 например:

// 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); 
     }); 
    } 
}); 

Я знаю, что я могу пропустить тесты, определив их в nightwatch.js и за исключением файлов и т. д., но это не тот подход, который я могу использовать в этой реализации. Другим решением может быть использование тегов, но я не уверен, что это возможно с помощью Mocha.

ответ

0

Вы можете получить доступ к флагу во втором примере при импорте модуля globals.js:

// 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'. –

Смежные вопросы