У меня есть файл 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 для моего теста?