>

Specflow가 지원하는 세 가지 다른 유형의 사용자 정의 플러그인의 차이점은 무엇입니까? 나는 지금 CodedUI 용 생성기 플러그인을 만들고 있으며이 질문은 계속해서 내 마음을 넘어서고 문서가 모호하거나 불완전하기 때문에 커뮤니티에 그들이 차이점에 대한 명확한 설명을 줄 수 있는지 물어볼 것이라고 생각했습니다. 런타임, 생성기 및 런타임/생성기 플러그인. 플러그인이 추가되면 어떻게하고 Specflow의 기능을 어떻게 변경합니까?

코드를 작성하는 방법을 아는 것이 유용하기 때문에, 내가 작업하고있는 것에 대한 이론을 알고 싶습니다. 그리고 그 문서는 그 앞에는 조용합니다.


  • 답변 # 1

    SpecFlow는 현재 디자인 또는 컴파일 타임 동안 기능 파일을 .NET (C #/VB) 테스트 클래스로 변환하는 방식으로 작동합니다. 생성 된 클래스는 MyStuff.feature.cs 파일에 있습니다.

    생성 된 파일에서 테스트 (SpecFlow 시나리오)를 실행하면 SpecFlow 런타임을 사용하여 단계 정의, 후크 및 시나리오 단계에 대한 자동화를 제공하는 데 필요한 모든 것을 찾습니다.

    제너레이터 플러그인은 디자인 또는 컴파일 타임 코드 생성에 영향을 줄 수 있습니다 (예 : 테스트 메소드에 대한 특수 속성을 생성 할 수 있음). 런타임 플러그인은 테스트 실행에 영향을 줄 수 있습니다 (예 : 특수 로깅 추가). 런타임/제너레이터는 둘 다 변경하는 플러그인 일뿐입니다.

    제너레이터 플러그인을로드하고 디자인 또는 컴파일 타임을 실행함에 따라 모든 플러그인 종속성이 사용 가능한지 확인해야합니다. 예 : 생성기가 이미 실행 된 시점에 완료되지 않았기 때문에 앱에서 프로젝트 중 하나에 대한 참조를 가질 수 없습니다.

관련 자료

  • 이전 javascript - JS가 객체가 존재하고 존재하는지 여부를 확인하는 가장 빠르고 빠른 방법은 무엇입니까?
  • 다음 Microsoft SQL Server Management Studio에서 기존 작업의 단계와 예약 된 시간을 교환하는 방법은 무엇입니까?