Cucumber (소프트웨어)


Step definitionsEdit

Gherkin의 .feature 파일의 단계는 메서드 호출로 간주 될 수 있습니다. 단계 정의를 통해 단계를 수행해야하는 방법을 알려야합니다.

정의는 Ruby로 작성되며 일반적으로 features/step_definitions/*_steps.rb에 보관됩니다. 정의는 호출과 동일한 키워드로 시작합니다 (Gherkin의 전체 언어 지원 포함). 각 정의는 두 개의 인수를 사용합니다.

  • 정규 표현식 또는 $ 변수가있는 문자열
  • 실행할 루비 코드가 포함 된 블록

예 정규 표현식 사용

Given /(.*) has a valid Credit or Debit card/ do |name| # Ruby codeend

문자열 및 $ 변수를 사용한 예. 런타임시 문자열은 정규식으로 변환되고 $ 변수는 (.*)와 일치하도록 변환됩니다.

Given "$name has a valid Credit or Debit card" do |name| # Ruby codeend

HooksEdit

Hooks는 테스트를 실행하기 전에 설정을 수행하고 나중에 실행하도록 해체 할 수 있도록하는 Cucumber의 방식입니다. 실행 가능한 Ruby 블록으로 정의됩니다. , @Before, @After 주석으로 표시된 JUnit 메소드와 유사합니다. 일반적으로 주석은 support/ 아래에 배치되며 전역 적으로 적용됩니다. 세 가지 기본 유형의 후크가 있습니다.

  • Before-시나리오 전 실행
  • After– 시나리오
  • Around-제어권을 가정하고 시나리오를 중심으로 실행

추가 후크 포함

  • BeforeStep
  • AfterStep
  • AfterConfiguration-Cucumber 구성 후 실행되며 구성 자세

Before, After, and Around 후크는 선택적으로 적용되는 태그 필터링 시나리오 목록을 가져옵니다. 동일한 문자열의 태그 목록은 OR로 처리되고 개별 인수는 AND로 처리됩니다. 태그 앞에 ~를 추가하여 선택적으로 부정 할 수 있습니다.

후크 이전에 태그 된 예

Before("@ATM") do |scenario| # Ruby codeend

훅은 대개 시나리오를 실행하기 전에 정리하여 데이터베이스 상태를 유지하는 데 사용됩니다. BeforeAfter 후크를 사용하여 트랜잭션을 시작하고 롤백 할 수도 있으며, 많은 Cucumber 확장은 태그를 사용합니다.

통합 및 구현 편집

Cucumber의 비 Ruby 구현은 Java, JavaScript 및 Python을 비롯한 널리 사용되는 언어에 존재합니다. 통합 테스트 프레임 워크에 대한 지원도 있습니다. 전체 구현 목록은 Cucumber에서 찾을 수 있습니다. Cucumber에는 많은 지속적 통합 구성과 잘 작동하는 통합 테스트 도구가 있습니다. Jenkins 및 TeamCity와 같은 인기있는 CI 도구와 Eclipse 및 RubyMine과 같은 IDE 용 오이 플러그인이 있습니다.

다음은 Cucumber-JVM을 사용하여 Java 용으로 작성된 단계 정의의 예입니다.

@Given("(.*) has a valid Credit or Debit card")public void has_card(String name) { // Java code}

Formatter pluginsEdit

Cucumber는 Formatter 플러그인을 사용하여 출력을 제공합니다. 기본적으로 여러 가지 일반적인 형식이 제공됩니다. 여기에는

  • JSON
  • HTML
  • JUnit

사용 가능한 형식은 다음과 같습니다. Cucumber 구현에 따라 표준화되지 않았으므로 제품이 다를 수 있습니다. Cucumber는 이미지 및 동영상과 같은 다양한 출력 형식도 지원합니다.

브라우저 자동화 편집

Cucumber는 내장 브라우저 자동화를 제공하지 않습니다. 그러나 Selenium 및 WATiR-WebDriver와 같은 기존 프로그램과 잘 작동합니다. ActiveRecord와 같은 다른 프로그램을 활용하여 트랜잭션으로 테스트 실행을 지원합니다.

Cucumber command-lineEdit

Cucumber에는 포괄적 인 지침 목록을 포함하는 명령 줄 인터페이스가 내장되어 있습니다. . 대부분의 명령 줄 도구와 마찬가지로 cucumber는 명령이 허용하는 인수 요약을 제공하는 --help 옵션을 제공합니다.

Cucumber 명령 줄을 사용하여 정의 된 테스트를 빠르게 실행할 수 있습니다. . 또한 태그를 필터링하여 시나리오의 하위 집합 실행을 지원합니다.

$ cucumber --tags @tag-name

위의 명령은 @tag-name를 지정했습니다. 인수는 태그의 논리적 OR 또는 AND 연산으로 제공 될 수 있습니다. 태그와 별도로 시나리오는 시나리오 이름으로 필터링 할 수 있습니다.

$ cucumber --name logout

위 명령은 단어가 포함 된 시나리오 만 실행합니다. “logout”.

테스트가 실패했을 때 무엇이 잘못되었는지 알 수있는 것도 유용합니다. Cucumber는 --backtrace 옵션을 사용하여 코드에서 버그를 쉽게 잡을 수 있습니다.

Cucumber는 Work In Progress 태그 @wip로 표시하여 완료되지 않은 특정 시나리오를 무시하도록 구성 할 수도 있습니다. Cucumber에 --wip 인수가 전달되면 Cucumber는 @wip 태그가있는 시나리오를 무시합니다.

답글 남기기

이메일 주소를 발행하지 않을 것입니다. 필수 항목은 *(으)로 표시합니다