goint
is an integration testing framework written in Go. It was written for use in applications developed in Go. While the implementation of an integration test using the framework must be written in Go, much of the functionality can be used for applications written in other languages as well. Some of the functionality could be used in contexts other than integration testing (e.g., verifying deployments or health checks).
goint
implements several capabilities which can be called verbs. goint
supports the following verbs:
Exec
- executes an arbitrary process. This can be anything that can be launched from a shell command line. One field in theExec
struct isToken
which can be referenced in theKill
andWait
verbs.Kill
- used to kill anExec
'd process. The process to be killed is identified by theToken
field value in the correspondingExec
definition.Delay
- does just that, it delays for a given amount of time and then continuesWait
- waits for a processExec
'd with the matchingToken
value to exitCurl
- will run an aribtrary curl requestDelayHealthCheck
- pings an arbitrary URL for a given number of times waiting a given number of sections between polls. It will complete with either an error or success.GoFunc
- will run an arbitrary Go function.Comp
- combines an arbitrary set of the above verbs into a composite action.Comp
verbs can be nested to create arbitrarily complex hierarchies of arbitrarily complex steps.
See goint_test.go
.