godog/release-notes/v0.9.0.md
2020-03-09 14:45:06 -03:00

4 КиБ

I am excited to announce the release of godog v0.9.0-rc1.

Here follows a summary of Notable Changes, the Non Backward Compatible Changes and Deprecation Notices. The full change log is available here.

Notable Changes

Most importantly, note that the gherkin core is changed to gherkin-go.

Non Backward Compatible Changes

Install godog

With the change of dependencies for godog, which relies on go modules, installing godog now requires go modules to be active.

If you are running within the $GOPATH, you would need to install godog like this: GO111MODULE=on go get github.com/cucumber/godog/cmd/godog@v0.9.0-rc1

  • Adding GO111MODULE=on will allow go get and go mod to work together as intended.
  • Adding @v0.9.0-rc1 will install v0.9.0-rc1 specifically instead of master.

If you are running outside of the $GOPATH, you should still specify a version.

I you encounter this error, please try adding GO111MODULE=on:

/go# go get github.com/cucumber/godog/cmd/godog
package github.com/cucumber/gherkin-go/v9: cannot find package "github.com/cucumber/gherkin-go/v9" in any of:
	/usr/local/go/src/github.com/cucumber/gherkin-go/v9 (from $GOROOT)
	/go/src/github.com/cucumber/gherkin-go/v9 (from $GOPATH)
package github.com/cucumber/messages-go/v9: cannot find package "github.com/cucumber/messages-go/v9" in any of:
	/usr/local/go/src/github.com/cucumber/messages-go/v9 (from $GOROOT)
	/go/src/github.com/cucumber/messages-go/v9 (from $GOPATH)

Gherkin Core

The following types have been switched for messages-go.

old new
gherkin.Feature messages.GherkinDocument
gherkin.Scenario messages.Pickle
gherkin.ScenarioOutline messages.Pickle
gherkin.Step messages.Pickle_PickleStep
gherkin.DocString messages.PickleStepArgument_PickleDocString
gherkin.DataTable messages.PickleStepArgument_PickleTable

Step Defintions

  • StepDef has been renamed to StepDefinition
  • Steps that earlier accepted *gherkin.DocString or *gherkin.DataTable needs to be updated to use *messages.PickleStepArgument_PickleDocString resp. *messages.PickleStepArgument_PickleTable. Example.

Hooks

The updated hooks can be found here.

  • BeforeFeature and AfterFeature hooks now accept *messages.GherkinDocument instead of *gherkin.Feature
  • BeforeScenario and AfterScenario hooks now accept *messages.Pickle instead of interface{}
  • BeforeStep and AfterStep hooks now accept *messages.Pickle_PickleStep instead *gherkin.Step

Formatter

The formatter interface have recieved some updates, the updated version can be found here.

  • Feature now accepts *messages.GherkinDocument instead of *gherkin.Feature
  • Node has been renamed to Pickle and now accepts *messages.Pickle instead of interface{}
  • Defined, Failed, Passed, Skipped, Undefined, Pending now takes *messages.Pickle as the first argument and *gherkin.Step, *StepDef have been updated to *messages.Pickle_PickleStep, *StepDefinition

Deprecation Notices

Hooks

  • BeforeFeature and AfterFeature hooks are now considered deprecated and will be removed in v0.10.0.

Full change log

See CHANGELOG.md.