Flesh out automated testing
We have the bare-bones pipeline but there is more work we could do to fill in the testing piece, including
- examples of good practices around
- unit testing
- integration testing
- smoke testing
- testing branches
- best tools, frameworks for each language
Set up a chat with Shane Gearon about this
Some suggestions: unit testing
- Go: testify,
go test. I've personally not used an external library for unit tests in go; so just having a dummy*_test.gofile and relying ongo testshould suffice?go testalone would certainly qualify as a best practice. - Node.js: jest,
npm test
integration testing I'm not very clear on what integration testing is. Wikipedia says it occurs after unit testing, but before validation testing. I view it as somewhere between unit testing and smoke testing. It should tie components together, but at what granularity?
Would this effectively be the same as the smoke test, but running in the local environment?
smoke testing With Zero we deploy to a staging environment, so having a smoke test that points there and does some trivial assertion should suffice. One question here is where should the smoke test configuration and code live?
testing branches What is this?