2011-03-18 2 views
12

첫 번째 네임 스페이스/프로젝트에 두 번째 단계 정의 클래스를 추가 할 수 있습니까? 나는 다음과 같이 있습니다 네임 스페이스를 : 나는 실행다른 프로젝트의 Specflow 단계 정의 클래스

내 테스트 프로젝트 ABZ.ExcelTest.ExcelStepDefinition

내 다른 프로젝트 테스트 로직입니다 : 네임 스페이스 : ABZ 클래스 이름 ABZ.ExcelTest. OfficeAddInTestLogic 클래스 이름 : ABZ.OfficeAddInTestLogic.StepDefinition

내가 모두 내 클래스에 대한 속성 만 테스트 프로젝트 (ABZ.OfficeAddInTestLogic.StepDefinition) 찾을 수 없습니다에없는이 일을 [바인딩] 한, 내가 NUnit과 오류가 발생합니다 :

단계에 대해 일치하는 단계 정의가 없습니다. 다음 코드를 사용하여 하나를 만듭니다. ...

다른 프로젝트에서 2 단계 정의 클래스를 사용할 수 있습니까?

답변

19

예이됩니다 - 해당 기능이 호출 외부 단계 (https://github.com/techtalk/SpecFlow/blob/master/Tests/FeatureTests/ExternalSteps/ExternalSteps.feature 참조)

는 당신이 아마 누락하는 것은 다음과 같이 설정의 app.config입니다 :

<specFlow> 
<stepAssemblies> 
    <stepAssembly assembly="ExternalStepsCS" /> 
</stepAssemblies> 

볼 것이다 이 경우 ExternalStepsCS라는 외부 어셈블리의 단계를위한 것입니다.

+0

예, 그렇습니다. specflow을 구성하기 위해 구성 파일을 사용하지 않았습니다. 고마워. :) – Vajda

1

필자는 종종 여러 테스트 프로젝트간에 공통 코드가 공유되는 "테스트 도우미"라이브러리를 보유하게됩니다. 이 공유 라이브러리에 수업이 있습니다. 전화 번호는 CucumberBase입니다. [Given()]/[When()]/[Then()]/등으로 태그가

[Binding] 
public class SomeFeatureSpecs : CucumberBase 
{ 
    ... 
} 

모든 공공 CucumberBase 방법 : 그럼, 내 실제 테스트 프로젝트에서,이 같은 클래스를해야합니다. 내 실제 테스트 프로젝트에서 정확히 SomeFeatureSpecs 클래스 내에 픽업됩니다. 이를 통해 일반적인 기능을 재정의하고 확장 할 수 있습니다.

관련 문제