Removed the deprecated feature hooks

Этот коммит содержится в:
Fredrik Lönnblad 2020-06-20 20:06:30 +02:00
родитель 6e01c51e3d
коммит 1d724e2107
3 изменённых файлов: 0 добавлений и 65 удалений

Просмотреть файл

@ -16,12 +16,10 @@ Feature: suite events
When I run feature suite When I run feature suite
Then these events had to be fired for a number of times: Then these events had to be fired for a number of times:
| BeforeSuite | 1 | | BeforeSuite | 1 |
| BeforeFeature | 1 |
| BeforeScenario | 1 | | BeforeScenario | 1 |
| BeforeStep | 3 | | BeforeStep | 3 |
| AfterStep | 3 | | AfterStep | 3 |
| AfterScenario | 1 | | AfterScenario | 1 |
| AfterFeature | 1 |
| AfterSuite | 1 | | AfterSuite | 1 |
Scenario: triggers appropriate events whole feature Scenario: triggers appropriate events whole feature
@ -29,12 +27,10 @@ Feature: suite events
When I run feature suite When I run feature suite
Then these events had to be fired for a number of times: Then these events had to be fired for a number of times:
| BeforeSuite | 1 | | BeforeSuite | 1 |
| BeforeFeature | 1 |
| BeforeScenario | 6 | | BeforeScenario | 6 |
| BeforeStep | 19 | | BeforeStep | 19 |
| AfterStep | 19 | | AfterStep | 19 |
| AfterScenario | 6 | | AfterScenario | 6 |
| AfterFeature | 1 |
| AfterSuite | 1 | | AfterSuite | 1 |
Scenario: triggers appropriate events for two feature files Scenario: triggers appropriate events for two feature files
@ -43,12 +39,10 @@ Feature: suite events
When I run feature suite When I run feature suite
Then these events had to be fired for a number of times: Then these events had to be fired for a number of times:
| BeforeSuite | 1 | | BeforeSuite | 1 |
| BeforeFeature | 2 |
| BeforeScenario | 2 | | BeforeScenario | 2 |
| BeforeStep | 7 | | BeforeStep | 7 |
| AfterStep | 7 | | AfterStep | 7 |
| AfterScenario | 2 | | AfterScenario | 2 |
| AfterFeature | 2 |
| AfterSuite | 1 | | AfterSuite | 1 |
Scenario: should not trigger events on empty feature Scenario: should not trigger events on empty feature
@ -63,12 +57,10 @@ Feature: suite events
When I run feature suite When I run feature suite
Then these events had to be fired for a number of times: Then these events had to be fired for a number of times:
| BeforeSuite | 1 | | BeforeSuite | 1 |
| BeforeFeature | 0 |
| BeforeScenario | 0 | | BeforeScenario | 0 |
| BeforeStep | 0 | | BeforeStep | 0 |
| AfterStep | 0 | | AfterStep | 0 |
| AfterScenario | 0 | | AfterScenario | 0 |
| AfterFeature | 0 |
| AfterSuite | 1 | | AfterSuite | 1 |
Scenario: should not trigger events on empty scenarios Scenario: should not trigger events on empty scenarios
@ -91,10 +83,8 @@ Feature: suite events
When I run feature suite When I run feature suite
Then these events had to be fired for a number of times: Then these events had to be fired for a number of times:
| BeforeSuite | 1 | | BeforeSuite | 1 |
| BeforeFeature | 1 |
| BeforeScenario | 2 | | BeforeScenario | 2 |
| BeforeStep | 2 | | BeforeStep | 2 |
| AfterStep | 2 | | AfterStep | 2 |
| AfterScenario | 2 | | AfterScenario | 2 |
| AfterFeature | 1 |
| AfterSuite | 1 | | AfterSuite | 1 |

Просмотреть файл

@ -48,12 +48,10 @@ type Suite struct {
// suite event handlers // suite event handlers
beforeSuiteHandlers []func() beforeSuiteHandlers []func()
beforeFeatureHandlers []func(*messages.GherkinDocument)
beforeScenarioHandlers []func(*messages.Pickle) beforeScenarioHandlers []func(*messages.Pickle)
beforeStepHandlers []func(*messages.Pickle_PickleStep) beforeStepHandlers []func(*messages.Pickle_PickleStep)
afterStepHandlers []func(*messages.Pickle_PickleStep, error) afterStepHandlers []func(*messages.Pickle_PickleStep, error)
afterScenarioHandlers []func(*messages.Pickle, error) afterScenarioHandlers []func(*messages.Pickle, error)
afterFeatureHandlers []func(*messages.GherkinDocument)
afterSuiteHandlers []func() afterSuiteHandlers []func()
} }
@ -137,27 +135,6 @@ func (s *Suite) BeforeSuite(fn func()) {
s.beforeSuiteHandlers = append(s.beforeSuiteHandlers, fn) s.beforeSuiteHandlers = append(s.beforeSuiteHandlers, fn)
} }
// BeforeFeature registers a function or method
// to be run once before every feature execution.
//
// If godog is run with concurrency option, it will
// run every feature per goroutine. So user may choose
// whether to isolate state within feature context or
// scenario.
//
// Best practice is not to have any state dependency on
// every scenario, but in some cases if VM for example
// needs to be started it may take very long for each
// scenario to restart it.
//
// Use it wisely and avoid sharing state between scenarios.
//
// Deprecated: BeforeFeature will be removed. Depending on
// your usecase, do setup in BeforeSuite or BeforeScenario.
func (s *Suite) BeforeFeature(fn func(*messages.GherkinDocument)) {
s.beforeFeatureHandlers = append(s.beforeFeatureHandlers, fn)
}
// BeforeScenario registers a function or method // BeforeScenario registers a function or method
// to be run before every pickle. // to be run before every pickle.
// //
@ -209,16 +186,6 @@ func (s *Suite) AfterScenario(fn func(*messages.Pickle, error)) {
s.afterScenarioHandlers = append(s.afterScenarioHandlers, fn) s.afterScenarioHandlers = append(s.afterScenarioHandlers, fn)
} }
// AfterFeature registers a function or method
// to be run once after feature executed all scenarios.
//
// Deprecated: AfterFeature will be removed. Depending on
// your usecase, do cleanup and teardowns in AfterScenario
// or AfterSuite.
func (s *Suite) AfterFeature(fn func(*messages.GherkinDocument)) {
s.afterFeatureHandlers = append(s.afterFeatureHandlers, fn)
}
// AfterSuite registers a function or method // AfterSuite registers a function or method
// to be run once after suite runner // to be run once after suite runner
// //
@ -455,22 +422,8 @@ func (s *Suite) shouldFail(err error) bool {
} }
func (s *Suite) runFeature(f *feature) { func (s *Suite) runFeature(f *feature) {
if !isEmptyFeature(f.pickles) {
for _, fn := range s.beforeFeatureHandlers {
fn(f.GherkinDocument)
}
}
s.fmt.Feature(f.GherkinDocument, f.Uri, f.content) s.fmt.Feature(f.GherkinDocument, f.Uri, f.content)
defer func() {
if !isEmptyFeature(f.pickles) {
for _, fn := range s.afterFeatureHandlers {
fn(f.GherkinDocument)
}
}
}()
for _, pickle := range f.pickles { for _, pickle := range f.pickles {
err := s.runPickle(pickle) err := s.runPickle(pickle)
if s.shouldFail(err) { if s.shouldFail(err) {

Просмотреть файл

@ -374,14 +374,6 @@ func (s *suiteContext) iAmListeningToSuiteEvents() error {
s.events = append(s.events, &firedEvent{"AfterSuite", []interface{}{}}) s.events = append(s.events, &firedEvent{"AfterSuite", []interface{}{}})
}) })
s.testedSuite.BeforeFeature(func(ft *messages.GherkinDocument) {
s.events = append(s.events, &firedEvent{"BeforeFeature", []interface{}{ft}})
})
s.testedSuite.AfterFeature(func(ft *messages.GherkinDocument) {
s.events = append(s.events, &firedEvent{"AfterFeature", []interface{}{ft}})
})
s.testedSuite.BeforeScenario(func(pickle *Scenario) { s.testedSuite.BeforeScenario(func(pickle *Scenario) {
s.events = append(s.events, &firedEvent{"BeforeScenario", []interface{}{pickle}}) s.events = append(s.events, &firedEvent{"BeforeScenario", []interface{}{pickle}})
}) })