Merge pull request #4274 from cdr/jsjoeio-testing-guidelines

docs: update section around testing
This commit is contained in:
Joe Previte 2021-10-01 11:15:15 -07:00 committed by GitHub
commit 4619786019
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 30 additions and 5 deletions

View File

@ -10,6 +10,7 @@
- [Build](#build)
- [Test](#test)
- [Unit tests](#unit-tests)
- [Script tests](#script-tests)
- [Integration tests](#integration-tests)
- [End-to-end tests](#end-to-end-tests)
- [Structure](#structure)
@ -129,13 +130,14 @@ yarn package
> If you need your builds to support older distros, run the build commands
> inside a Docker container with all the build requirements installed.
### Test
## Test
There are three kinds of tests in code-server:
There are four kinds of tests in code-server:
1. Unit tests
2. Integration tests
3. End-to-end tests
2. Script tests
3. Integration tests
4. End-to-end tests
### Unit tests
@ -146,6 +148,14 @@ These live under [test/unit](../test/unit).
We use unit tests for functions and things that can be tested in isolation. The file structure is modeled closely after `/src` so it's easy for people to know where test files should live.
### Script tests
Our script tests are written in bash and run using [bats](https://github.com/bats-core/bats-core).
These tests live under `test/scripts`.
We use these to test anything related to our scripts (most of which live under `ci`).
### Integration tests
These are a work in progress. We build code-server and run a script called

View File

@ -19,6 +19,7 @@
- [Docker](#docker)
- [Homebrew](#homebrew)
- [npm](#npm)
- [Testing](#testing)
- [Documentation](#documentation)
- [Troubleshooting](#troubleshooting)
@ -214,6 +215,20 @@ We publish code-server as a npm package [here](https://www.npmjs.com/package/cod
This is currently automated with the release process.
## Testing
Our testing structure is laid out under our [Contributing docs](https://coder.com/docs/code-server/latest/CONTRIBUTING#test).
We hope to eventually hit 100% test converage with our unit tests, and maybe one day our scripts (coverage not tracked currently).
If you're ever looking to add more tests, here are a few ways to get started:
- run `yarn test:unit` and look at the coverage chart. You'll see all the uncovered lines. This is a good place to start.
- look at `test/scripts` to see which scripts are tested. We can always use more tests there.
- look at `test/e2e`. We can always use more end-to-end tests.
Otherwise, talk to a current maintainer and ask which part of the codebase is lacking most when it comes to tests.
## Documentation
### Troubleshooting