java의 cucumber-jvm
과 마찬가지로, Behave
도 Cucumber를 지원하는 라이브러리이기 때문에, Hook
을 작성할 수 있습니다.
일단 hook을 사용하기 위해서는 정해진 fileTree와 filenaming이 있습니다.
feature/environment.py
로 설정해주셔야 라이브러리에서 인식합니다.
기본적으로 hook
으로 사용할 수 있는 모듈들의 이름은 아래와 같이 정해져 있습니다. 그대로 정의를 해야 라이브러리에서 인식할 수 있습니다.
- before_step(context, step), after_step(context, step)
These run before and after every step.- before_scenario(context, scenario), after_scenario(context, scenario)
These run before and after each scenario is run.- before_feature(context, feature), after_feature(context, feature)
These run before and after each feature file is exercised.- before_tag(context, tag), after_tag(context, tag)
These run before and after a section tagged with the given name. They are invoked for each tag encountered in the order they’re found in the feature file.- before_all(context), after_all(context)
These run before and after the whole shooting match.
보통 hook
은 서버의 실행이나 브라우저의 실행을 담당하기도하고, 테스트 실행 전후에 테스트 데이터를 생성 혹은 삭제에 사용할 수 있습니다.
Scenario객체에는 아래와 같은 값들이 들어갈 수 있습니다.
Ref.