2012-10-16 2 views
5

자동화를 위해 cucumber-watir-webdriver를 사용하고 있습니다. 나는 다음과 같은 디렉토리 구조를 가지고있다 :오이의 일반적인 단계를 유지하는 모범 사례

|features 
-|feature1 
--|1.feature 
--|step_definitions 
---|1.rb 
-feature2 
--|2.feature 
--|step_definitions 
---|2.rb 

등등. 1.rb2.rb에서 중복성을 줄이는 것이 가장 좋은 방법인지 알아야합니다. feature1feature2은 완전히 다르므로 하나의 디렉토리에서 두 가지를 결합 할 수 없습니다. 또한 피쳐 라인이 동일하지만 단계별 실행이 서로 다른 부분이 있으므로 함께있는 경우 애매하게 만듭니다.

1.rb2.rb에 공통적 인 부분이 있는지 알고 싶습니다. 공통 단계 정의를 유지하는 것이 가장 좋습니다.

+0

관련 코드를 표시하십시오. –

+0

무엇이 필요합니까 ?? "데이터베이스 항목 확인"과 같은 두 기능이 있지만 확인 데이터베이스는 다릅니다. 나는 그들을 섞어서 복잡하게 만들고 싶지 않습니다. 그러나 "주어진 로그인"과 같은 단계는 동일하므로 어딘가에 결합 된 단계 정의를 넣고 싶습니다. –

답변

1

오이는 현재 또는 다음 디렉토리에 단계 정의를 검색합니다. 그래서 우리는 지금이 단계를 정의하여 1

require "#{File.dirname(__FILE__)}/../../common_steps.rb" 

를 추가로드

|features 
-|feature1 
--|1.feature 
--|step_definitions 
---1.rb 
-feature2 
--|2.feature 
--|step_definitions 
---2.rb 
-|common_steps.rb <-- keep common steps in here 

으로이 하나의 해결책을 발견, 이 기능 디렉토리 아래에서 일반적인 정의 디렉토리 나 파일을 가질 수 없습니다. rbs. 또한 그런 다음 다음과 같은 기능의 일반적인 단계를 포함하는 모든 같은 디렉토리에 common_steps.rb 파일을 유지할 수 이상 디렉토리 구조를 가질 수 있으며

require "#{File.dirname(__FILE__)}/../common_steps.rb" 

이 코드 Sky News에 이전 common_steps.rb 파일을 요구할 수 있습니다. 이렇게하면 디렉토리 구조와 step_definition 파일이 깨끗하게 유지됩니다.

2

기능을 개별 디렉토리로 분리하는 것은 좋지만,디렉토리에있는 *_step.rb 파일을 features 디렉토리 아래에 함께 보관하는 것이 가장 좋습니다. 두 기능에 공통적 인 단계를 common_steps.rb 파일에 넣을 수 있습니다 (common_steps.rb 대신 login_steps.rbtest_data_creation_steps.rb과 같은 것이 더 좋음).

는 질문에, 나는 다음을 건의 할 것 같은 스타일의 디렉토리 구조 다이어그램으로 그 번역 :

|features 
-|feature1 
--|1.feature 
-feature2 
--|2.feature 
-|step_definitions 
--|1.rb 
--|2.rb 
--|common_steps.rb <-- put your common steps in here 
+0

고마워요.하지만 제가 의심 할 여지가 있습니다. 단계별 정의가 실행될 때로드 될 것입니다. "cucumber /features/feature1/1.feature" 트리 2-3 레벨이 깊고 특정 기능을 실행하고 싶다면 "cucumber /features/feature1/feature1.1/1.1.feature"그러면 오이 autoload/feature/step_definition –

+0

예,로드됩니다. –

+0

올바르지 않습니다.로드되지 않습니다. Cucumber에게'cucumber -r features features/feature1/1.feature'를 어디에서보아야하는지 알려야합니다. 기본적으로 단계 정의 및 지원 코드는 지정된 기능 및 해당 하위 디렉토리가 포함 된 디렉토리에서 검색됩니다. – jbpros

관련 문제