Merge pull request #312 from cucumber/removed-deprecated-feature-hooks
Removed the deprecated feature hooks
Этот коммит содержится в:
коммит
d9e0ff7489
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 |
|
||||||
|
|
47
suite.go
47
suite.go
|
@ -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}})
|
||||||
})
|
})
|
||||||
|
|
Загрузка…
Создание таблицы
Сослаться в новой задаче