Пропустить тесты Coffeescript в зависимости от версии программного обеспечения - PullRequest
0 голосов
/ 28 ноября 2018

У меня есть файл coffeescript с именем archive.spec.coffee.

Он начинается с:

describe 'Archive', ->

и все тесты находятся в пределах описания.

Я хочу проверитьдля версии программного обеспечения, использующей вызов http и в зависимости от того, что это такое, я бы хотел выполнить или пропустить тесты.

Я думаю, что мне нужно сделать что-то подобное, но пока это не работает:

req = https.get {host: "https://path/to/endpoint"}

if(req.version == 1.2.3)
  this.skip
else
  describe 'Archive', ->

Может кто-нибудь сказать мне, как правильно это сделать?

Дополнительная информация

Я придумал это:

beforeEach ->
  req = request.get {
    url: 'https://path/to/endpoint', 
    auth: {
      user: 'admin',
      pass: 'password'
    },
    json: true
  }, 
  (err, res, body) ->
    version = body.responseData.devices[0].versions[0].version
    if (version.indexOf('1.2.3') == -1)
      done()
    else
      this.skip()

describe 'Archive', ->

Моя проблема сейчас в том, что если версия 1.2.3, version.indexOf('1.2.3') возвращает 0, вводится else, но тесты не пропускаются.

Последнее обновление

Теперь я пришел к следующему:

before (done) ->
  req = request.get {
    url: 'https://path/to/endpoint', 
    auth: {
      user: 'admin',
      pass: 'password'
    },
    json: true
  }, 
  (err, res, body) ->
    version = body.responseData.devices[0].versions[0].version
    if (version.indexOf('1.2.3') != -1)
      skip = true
      done()
    else
      done()

describe 'Archive', ->

  it 'my_test', ->
    if (skip)
      this.skip()

Если я протестирую это с версией 1.2.3, я вижу, что для пропуска установлено значение true в функции before.done () возвращается к my_test, но if (skip) равно false.Очевидно, это потому, что skip имеет значение true в другой функции.Как получить так, чтобы before возвращал значение skip для моего теста?

1 Ответ

0 голосов
/ 07 декабря 2018

У меня есть файл конфигурации в формате json, поэтому я добавил ключ version, который принимает переменную окружения, содержащую версию.Однажды в конфиге я могу использовать его, как мне нравится.

...