
Example godog setup with gdutils
Overview:
This repository contains skeleton that allow to write behaviour driven tests with use of framework godog
that implements gherkin/cucumber syntax with step library gdutils.
Project structure:
.
├── LICENSE
├── Makefile - source of useful commands (make env, make download-dependencies, make clean)
├── README.MD
├── bin - binaries with simple CRUD API server, required ONLY for testing purposes
│ ├── README.MD
│ ├── darwin
│ ├── linux
│ ├── schema.yaml - CRUD API schema - if you would like to use it somehow
│ └── windows
├── defs - 🥒 package with implementation of godog methods(steps)
│ └── scenario.go - 🥒 here add your custom methods(steps) definitions if required
├── features - 🥒 place for your tests (files with extensions .feature)
│ └── users_crud.feature - 🥒 simple test feature, required ONLY for testing purposes
├── go.mod
├── go.sum
├── main_test.go - 🥒 setup for godog framework
└── usage_1.gif
└── usage_2.gif
Usage:
Prerequisites
- globally visible
godog v0.12 CLI (godog --version)
.env file
First time:

At first download go packages & godog CLI. You can do it by typing in console
make download-dependencies
Afterwards, godog CLI (represented as binary file) will be downloaded to $GOPATH/bin directory. This path should be added to
your $PATH env variable! To checks whether CLI is globally available, type:
godog --version
Note, that project directory should not be inside GOPATH !
Next, create .env file
make env
Finally, remove unnecessary files and directories ✂ (run it just once).
Warning: This command removes .git/, .github/, bin/, usage_1.gif, usage_2.gif, .gitignore and example test suite from features/ dir. If you want
to keep any of these (for example if you want to use features/users_crud.feature as example for your test suites),
then do not run this command!
make clean
Regular:

Following commands run from local terminal in main project directory:
Running all tests directly by godog CLI
godog
Running all tests from console using go binary:
go test
Run single test directly by godog CLI
godog features/users_crud.feature
Run tests with parallelization (many at once)
godog --concurrency=X --format=progress
where X is level of concurrency (int)