Merge pull request #4274 from cdr/jsjoeio-testing-guidelines
docs: update section around testing
This commit is contained in:
commit
4619786019
@ -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
|
||||||
|
@ -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
|
||||||
|
Reference in New Issue
Block a user