Cucumber로 SpecInfra의 Backend를 사용해 보도록 하겠습니다.
샘플 코드 여기 있습니다.
스펙인fra 사용법에 대해서도 이쪽으로 오세요.specinfra를 사용해 보세요. - Qita.
먼저 Env
단계에서 spcinfra
.backend
를 쉽게 사용하기 위해 모듈화는 World 읽기로 변경되었습니다.features/support/env.rb
require 'specinfra'
require 'net/ssh'
module InfraHelper
include SpecInfra::Helper::DetectOS
include SpecInfra::Helper::Ssh
def default_backend(host, user = 'root', ssh_opts = {})
SpecInfra.configuration.ssh = Net::SSH.start(host, user, ssh_opts)
end
end
World(InfraHelper)
Giithub의 샘플 코드에는 Given에서 지정된 대상 호스트를 위해 제작된#return_backend
도 남아 있다.그다음에 베포.
어쨌든 대상은 1대와 그대로 코드를 공개하기 위해 베포에서 백엔드 설정을 시도했다.
features/support/hooks.rb
Before do
default_backend(ENV['CUCUMBER_REMOTE_HOST'])
end
여러 개라면 백그라운드에 배열해서 대상을 변경하면서 두드릴 수 있는데 여러 가지 방법이 있다고 생각해요.프로젝트로 이동
샘플 시나리오 1
그러면 샘플의 하나인 OS 시리즈
SmartOS
를 확인하는 시나리오를 조금 통용되는 스텝으로 제작한다.features/_get_os_family.feature
Feature: Get OS Family
Scenario: Success Login
When I ask to backend with "check_os"
Then I will found "SmartOS" from backend at "family"
단계 1산열이 되돌아오는 방법에 대해 임의의 키의 내용을 확인하십시오.
features/step_definitions/ask_with_step.rb
When(/^I ask to backend with "(.*)"$/) do |method|
@result = backend.send(method.to_sym)
end
Then(/^I will found "(.*)" from backend at "(.*)"$/) do |exp, key|
raise unless @result[key.to_sym] == exp
end
끼워 넣은 열쇠와 모델도 맞아야 한다면 공을 들이는 절차가 필요하다.샘플 시나리오 2
특정 버전의 패키지가 설치되어 있는지 확인합니다.
여기
specinfra
를 치기로 한 check_installed
가 아니라 대본 대강으로 요약하고 기술해 봤다.features/check_package.feature
Feature: Check package
Scenario Outline: Detect package
Given I check package "<package>" installed with "<version>"
Scenarios: Installed
| package | version |
| openssl | 1.0.1fnb1 |
| nginx | 1.5.7 |
| gmake | 4.0 |
| gcc47 | 4.7.3nb1 |
| autoconf | 2.69nb3 |
단계 2specinfra
불열전으로 돌려보내기 때문에 한 줄로 가면 됩니다.features/step_definitions/check_by_step.rb
When(/^I check package "(.*)" installed with "(.*)"$/) do |pkg, version|
raise unless backend.check_installed(pkg, version)
end
절차가 끝났고 다른 운영체제에서 사용할 수 있어 도움이 된다.결과를 발표하다
환경 변수
CUCUMBER_REMOTE_HOST
를 cucumber로 설정합니다.cucumber-result
$ cucumber
Feature: Get OS Family
Scenario: Success Login # features/_get_os_family.feature:3
When I ask to backend with "check_os" # features/step_definitions/ask_with_step.rb:1
Then I will found "SmartOS" from backend at "family" # features/step_definitions/ask_with_step.rb:5
Feature: Check package
Scenario Outline: Detect package # features/check_package.feature:3
Given I check package "<package>" installed with "<version>" # features/step_definitions/check_by_step.rb:1
Scenarios: Installed
| package | version |
| openssl | 1.0.1fnb1 |
| nginx | 1.5.7 |
| gmake | 4.0 |
| gcc47 | 4.7.3nb1 |
| autoconf | 2.69nb3 |
6 scenarios (6 passed)
7 steps (7 passed)
0m14.372s
스트라이크 그린.Reference
이 문제에 관하여(Cucumber로 SpecInfra의 Backend를 사용해 보도록 하겠습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/sawanoboly/items/03339379d1d72db71810텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)