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

@ -8,8 +8,9 @@
- [Development workflow](#development-workflow) - [Development workflow](#development-workflow)
- [Updates to VS Code](#updates-to-vs-code) - [Updates to VS Code](#updates-to-vs-code)
- [Build](#build) - [Build](#build)
- [Test](#test) - [Test](#test)
- [Unit tests](#unit-tests) - [Unit tests](#unit-tests)
- [Script tests](#script-tests)
- [Integration tests](#integration-tests) - [Integration tests](#integration-tests)
- [End-to-end tests](#end-to-end-tests) - [End-to-end tests](#end-to-end-tests)
- [Structure](#structure) - [Structure](#structure)
@ -129,13 +130,14 @@ yarn package
> If you need your builds to support older distros, run the build commands > If you need your builds to support older distros, run the build commands
> inside a Docker container with all the build requirements installed. > 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 1. Unit tests
2. Integration tests 2. Script tests
3. End-to-end tests 3. Integration tests
4. End-to-end tests
### Unit 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. 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 ### Integration tests
These are a work in progress. We build code-server and run a script called These are a work in progress. We build code-server and run a script called

View File

@ -19,6 +19,7 @@
- [Docker](#docker) - [Docker](#docker)
- [Homebrew](#homebrew) - [Homebrew](#homebrew)
- [npm](#npm) - [npm](#npm)
- [Testing](#testing)
- [Documentation](#documentation) - [Documentation](#documentation)
- [Troubleshooting](#troubleshooting) - [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. 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 ## Documentation
### Troubleshooting ### Troubleshooting