Add release notes and bump version (#416)
Этот коммит содержится в:
родитель
8cf3f415b3
коммит
ad7feb3298
4 изменённых файлов: 146 добавлений и 7 удалений
11
CHANGELOG.md
11
CHANGELOG.md
|
@ -8,17 +8,21 @@ This document is formatted according to the principles of [Keep A CHANGELOG](htt
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## [Unreleased]
|
## [v0.12.0]
|
||||||
|
|
||||||
### Added
|
### Added
|
||||||
|
|
||||||
- Support for step definitions without return ([364](https://github.com/cucumber/godog/pull/364) - [titouanfreville])
|
- Support for step definitions without return ([364](https://github.com/cucumber/godog/pull/364) - [titouanfreville])
|
||||||
- Contextualized hooks for scenarios and steps ([409](https://github.com/cucumber/godog/pull/409)) - [vearutop])
|
- Contextualized hooks for scenarios and steps ([409](https://github.com/cucumber/godog/pull/409)) - [vearutop])
|
||||||
- Step result status in After hook ([409](https://github.com/cucumber/godog/pull/409)) - [vearutop])
|
- Step result status in After hook ([409](https://github.com/cucumber/godog/pull/409)) - [vearutop])
|
||||||
|
- Support auto converting doc strings to plain strings ([380](https://github.com/cucumber/godog/pull/380)) - [chirino])
|
||||||
|
- Use multiple formatters in the same test run ([392](https://github.com/cucumber/godog/pull/392)) - [vearutop])
|
||||||
|
- Added `RetrieveFeatures()` method to `godog.TestSuite` ([276](https://github.com/cucumber/godog/pull/276)) - [radtriste])
|
||||||
|
|
||||||
### Changed
|
### Changed
|
||||||
|
|
||||||
- Upgraded gherkin-go to v19 ([402](https://github.com/cucumber/godog/pull/402) - [mbow])
|
- Upgraded gherkin-go to v19 and messages-go to v16 ([402](https://github.com/cucumber/godog/pull/402) - [mbow])
|
||||||
|
- Generate simpler snippets that use *godog.DocString and *godog.Table ([379](https://github.com/cucumber/godog/pull/379)) - [chirino])
|
||||||
|
|
||||||
### Deprecated
|
### Deprecated
|
||||||
|
|
||||||
|
@ -207,3 +211,6 @@ This document is formatted according to the principles of [Keep A CHANGELOG](htt
|
||||||
[rickardenglund]: https://github.com/rickardenglund
|
[rickardenglund]: https://github.com/rickardenglund
|
||||||
[mbow]: https://github.com/mbow
|
[mbow]: https://github.com/mbow
|
||||||
[vearutop]: https://github.com/vearutop
|
[vearutop]: https://github.com/vearutop
|
||||||
|
[chirino]: https://github.com/chirino
|
||||||
|
[radtriste]: https://github.com/radtriste
|
||||||
|
[karfrank]: https://github.com/karfrank
|
||||||
|
|
|
@ -45,13 +45,13 @@ When automated testing is this much fun, teams can easily protect themselves fro
|
||||||
|
|
||||||
## Install
|
## Install
|
||||||
```
|
```
|
||||||
go get github.com/cucumber/godog/cmd/godog@v0.11.0
|
go get github.com/cucumber/godog/cmd/godog@v0.12.0
|
||||||
```
|
```
|
||||||
Adding `@v0.11.0` will install v0.11.0 specifically instead of master.
|
Adding `@v0.12.0` will install v0.12.0 specifically instead of master.
|
||||||
|
|
||||||
Running `within the $GOPATH`, you would also need to set `GO111MODULE=on`, like this:
|
Running `within the $GOPATH`, you would also need to set `GO111MODULE=on`, like this:
|
||||||
```
|
```
|
||||||
GO111MODULE=on go get github.com/cucumber/godog/cmd/godog@v0.11.0
|
GO111MODULE=on go get github.com/cucumber/godog/cmd/godog@v0.12.0
|
||||||
```
|
```
|
||||||
|
|
||||||
## Contributions
|
## Contributions
|
||||||
|
@ -390,7 +390,7 @@ import (
|
||||||
|
|
||||||
"github.com/cucumber/godog"
|
"github.com/cucumber/godog"
|
||||||
"github.com/cucumber/godog/colors"
|
"github.com/cucumber/godog/colors"
|
||||||
"github.com/spf13/pflag" // godog v0.11.0 (latest)
|
"github.com/spf13/pflag" // godog v0.11.0 and later
|
||||||
)
|
)
|
||||||
|
|
||||||
var opts = godog.Options{
|
var opts = godog.Options{
|
||||||
|
|
2
godog.go
2
godog.go
|
@ -39,4 +39,4 @@ Godog was inspired by Behat and Cucumber the above description is taken from it'
|
||||||
package godog
|
package godog
|
||||||
|
|
||||||
// Version of package - based on Semantic Versioning 2.0.0 http://semver.org/
|
// Version of package - based on Semantic Versioning 2.0.0 http://semver.org/
|
||||||
const Version = "v0.11.0"
|
const Version = "v0.12.0"
|
||||||
|
|
132
release-notes/v0.12.0.md
Обычный файл
132
release-notes/v0.12.0.md
Обычный файл
|
@ -0,0 +1,132 @@
|
||||||
|
We are excited to announce the release of godog v0.12.0.
|
||||||
|
|
||||||
|
Here follows a summary of Notable Changes, the Non Backward Compatible Changes and Deprecation Notices. The full change
|
||||||
|
log is available [here](https://github.com/cucumber/godog/blob/master/CHANGELOG.md).
|
||||||
|
|
||||||
|
|
||||||
|
Notable Changes
|
||||||
|
---------------
|
||||||
|
|
||||||
|
### Output with multiple formatters
|
||||||
|
|
||||||
|
Now `godog` is able to use multiple formatters simultaneously with comma-separated formatters.
|
||||||
|
|
||||||
|
`--format pretty,junit:report.xml,cucumber:report.json` will write `pretty` format to stdout, `junit` to report.xml
|
||||||
|
and `cucumber` to report.json.
|
||||||
|
|
||||||
|
### Contextualized hooks
|
||||||
|
|
||||||
|
Scenario and Step hooks are now passing context to allow custom state communication. Returned context should generally
|
||||||
|
be based or equal to received context. Context is also passed to steps that have it in declaration and is read from
|
||||||
|
steps that return it.
|
||||||
|
|
||||||
|
Hooks can now return error, if non nil error is returned test is failed. This enables additional flow control, for
|
||||||
|
example to check expectations after the scenario.
|
||||||
|
|
||||||
|
Scenario hooks are now named `Before` and `After`.
|
||||||
|
|
||||||
|
```go
|
||||||
|
// BeforeScenarioHook defines a hook before scenario.
|
||||||
|
type BeforeScenarioHook func (ctx context.Context, sc *Scenario) (context.Context, error)
|
||||||
|
|
||||||
|
// AfterScenarioHook defines a hook after scenario.
|
||||||
|
type AfterScenarioHook func (ctx context.Context, sc *Scenario, err error) (context.Context, error)
|
||||||
|
```
|
||||||
|
|
||||||
|
Step hooks are now also named `Before` and `After`, but they are available with `ScenarioContext.StepContext()`.
|
||||||
|
|
||||||
|
```go
|
||||||
|
// BeforeStepHook defines a hook before step.
|
||||||
|
type BeforeStepHook func (ctx context.Context, st *Step) (context.Context, error)
|
||||||
|
|
||||||
|
// AfterStepHook defines a hook after step.
|
||||||
|
type AfterStepHook func (ctx context.Context, st *Step, status StepResultStatus, err error) (context.Context, error)
|
||||||
|
```
|
||||||
|
|
||||||
|
### Step definition improvements
|
||||||
|
|
||||||
|
Now `godog` can use additional ways to declare step definition. These declarations are optional and do not break
|
||||||
|
backwards compatibility.
|
||||||
|
|
||||||
|
Error result may be omitted if the step does not fail.
|
||||||
|
|
||||||
|
```go
|
||||||
|
func iEat(arg1 int) {
|
||||||
|
// Eat arg1.
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
You can have `context.Context` as first argument, test runner will pass current context to the step.
|
||||||
|
|
||||||
|
```go
|
||||||
|
func iEat(ctx context.Context, arg1 int) {
|
||||||
|
if v, ok := ctx.Value(eatKey{}).int; ok {
|
||||||
|
// Eat v from context.
|
||||||
|
}
|
||||||
|
// Eat arg1.
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
You can have `context.Context` in return, test runner will use returned context to pass to next hooks and steps.
|
||||||
|
|
||||||
|
```go
|
||||||
|
func iEat(ctx context.Context, arg1 int) context.Context {
|
||||||
|
if v, ok := ctx.Value(eatKey{}).int; ok {
|
||||||
|
// Eat v from context.
|
||||||
|
}
|
||||||
|
// Eat arg1.
|
||||||
|
|
||||||
|
return context.WithValue(ctx, eatKey{}, 0)
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
If error is also needed in return, context have to be first.
|
||||||
|
|
||||||
|
```go
|
||||||
|
func iEat(ctx context.Context, arg1 int) (context.Context, error) {
|
||||||
|
if v, ok := ctx.Value(eatKey{}).int; ok {
|
||||||
|
// Eat v from context.
|
||||||
|
}
|
||||||
|
// Eat arg1.
|
||||||
|
|
||||||
|
if arg1 == 0 {
|
||||||
|
return errors.New("can't eat nothing")
|
||||||
|
}
|
||||||
|
|
||||||
|
return context.WithValue(ctx, eatKey{}, 0), nil
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
You can now use `string` instead of `*godog.DocString` in declaration.
|
||||||
|
|
||||||
|
### Getting features of test suite
|
||||||
|
|
||||||
|
`godog.TestSuite` now can `RetrieveFeatures() ([]*models.Feature, error)` to expose parsed features to the user.
|
||||||
|
|
||||||
|
### Added official support for go1.16
|
||||||
|
|
||||||
|
With the introduction of go1.16, go1.16 is now officially supported.
|
||||||
|
|
||||||
|
Non Backward Compatible Changes
|
||||||
|
-------------------------------
|
||||||
|
|
||||||
|
### Messages library updated
|
||||||
|
|
||||||
|
Messages library is changed from `github.com/cucumber/messages-go/v10` to `github.com/cucumber/messages-go/v16`.
|
||||||
|
|
||||||
|
Deprecation Notices
|
||||||
|
-------------------
|
||||||
|
|
||||||
|
### Hooks
|
||||||
|
|
||||||
|
Scenario and step hooks were upgraded with new API to support context and errors, previous methods are now deprecated.
|
||||||
|
|
||||||
|
- `ScenarioContext.BeforeScenario`, use `ScenarioContext.Before`
|
||||||
|
- `ScenarioContext.AfterScenario`, use `ScenarioContext.After`
|
||||||
|
- `ScenarioContext.BeforeStep`, use `ScenarioContext.StepContext().Before`
|
||||||
|
- `ScenarioContext.AfterStep`, use `ScenarioContext.StepContext().After`
|
||||||
|
|
||||||
|
Full change log
|
||||||
|
---------------
|
||||||
|
|
||||||
|
See [CHANGELOG.md](https://github.com/cucumber/godog/blob/master/CHANGELOG.md).
|
Загрузка…
Создание таблицы
Сослаться в новой задаче