Как использовать или условие в serverspec?

У меня есть веб-сайт, который нужно проверить на код состояния, используя команду curl для получения кода состояния веб-сайта. Иногда выдает коды состояния 200 и 302. Я использую serverpec для проверки кода состояния веб-сайта. Поскольку я получаю 2 кода состояния, я хочу использовать условие «или», чтобы это сделать. Как я мог его использовать. Вот мой тестовый пример Serverspec.

describe command('curl -IL --retry 4 "www.example.com"') do
  its(:stdout) { should match '200' or '302' }
end

Этот дает ошибку для меня.


person Venu    schedule 24.03.2016    source источник


Ответы (1)


Я никогда не видел или в спецификации сервера. Но, может быть, просто решить это в самой команде:

describe command('curl -sL -w "%{http_code}\\n" "www.example.com" -o /dev/null | sed "s/200/OK/" | sed "s/302/OK/"') do
  its(:stdout) { should match 'OK' }
end
person udondan    schedule 25.03.2016
comment
это не 302 OK, а 302 NOT Found. Вот как это дает HTTP/1.1 302 Found или HTTP/1.1 200 OK, не могу быть уверен, когда мы получим эти два - person Venu; 25.03.2016
comment
Обратите внимание на команду. Вывод curl будет ТОЛЬКО кодом состояния, который позже заменяется на OK, если это было 200 или 302. OK вообще не имеет отношения к значению кода состояния. - person udondan; 25.03.2016