behave
library에서의 hook의 실행 순서에 대해 알아봅니다.
일단, behave
에서는 메소드와 메소드 간 attribute를 공유하게 도와주는 context
가 있습니다만, 이것은 step, scenario, feature layer대로 실행됩니다. 그리고 이 context
attribute는 각각의 layer가 종료되고 다시 시작되는 경우에는 초기화가 됩니다.
behave
의 hook에는 아래와 같은 종류가 있습니다.
before_all(context)
after_all(context)
before_feature(context, feature)
after_feature(context, feature)
before_tag(context, tag)
after_tag(context, tag)
before_scenario(context, scenario)
after_scenario(context, scenario)
before_step(context, step)
after_step(context, step)
또한 hook의 실행순서는 아래와 같습니다.
before_all()
before_feature()
before_tag()
before_scenario()
before_step()
after_step()
after_scenario()
after_tag()
after_feature()
after_all()
이때 hook을 사용하여 context
내부 attribute를 다른 시나리오로 공유하고자 할 수 있는데, 위 hook의 실행순서를 잘 확인하여 구성해야겠습니다.
참고로 scenario
보다 tag
가 빠른 순서로 실행된다는 것을 참고하여야겠습니다.