зеркало из https://github.com/mozilla/treeherder.git
108 строки
2.4 KiB
Markdown
108 строки
2.4 KiB
Markdown
# Running the Automated Tests
|
|
|
|
## JavaScript
|
|
|
|
### Validating JavaScript
|
|
|
|
We run our JavaScript code in the frontend through [ESLint] to ensure
|
|
that new code has a consistent style and doesn't suffer from common
|
|
errors. ESLint will run automatically when you build the JavaScript code
|
|
or run the development server. A production build will fail if your code
|
|
does not match the style requirements.
|
|
|
|
To run ESLint by itself, you may run the lint task:
|
|
|
|
```bash
|
|
$ yarn lint
|
|
```
|
|
|
|
Or to automatically fix issues found (where possible):
|
|
|
|
```bash
|
|
$ yarn lint --fix
|
|
```
|
|
|
|
You can also check against Prettier:
|
|
|
|
```bash
|
|
$ yarn format:check
|
|
```
|
|
|
|
and to have it actually fix (to the best of its ability) any format issues,
|
|
just do:
|
|
|
|
```bash
|
|
$ yarn format
|
|
```
|
|
|
|
See the [code style](code_style.md#ui) section for more details.
|
|
|
|
### Running the Jest front-end unit tests
|
|
|
|
The unit tests for the UI are run with [Jest].
|
|
|
|
To run the tests:
|
|
|
|
- If you haven't already done so, install local dependencies by running `yarn install` from the project root.
|
|
- Then run `yarn test` to execute the tests.
|
|
|
|
While working on the frontend, you may wish to watch JavaScript files and re-run tests
|
|
automatically when files change. To do this, you may run one of the following commands:
|
|
|
|
```bash
|
|
$ yarn test:watch
|
|
```
|
|
|
|
The tests will perform an initial run and then re-execute each time a project file is changed.
|
|
|
|
## Python
|
|
|
|
To run all Python unit tests, including linting, sorting, etc:
|
|
|
|
```bash
|
|
docker-compose run backend sh -c "./runtests.sh"
|
|
```
|
|
|
|
### Running a specific set of Python unit tests
|
|
|
|
Here are some examples of ways to run the python tests with varying levels
|
|
of specificity:
|
|
|
|
All tests:
|
|
|
|
```bash
|
|
docker-compose run backend python -bb -m pytest tests/
|
|
```
|
|
|
|
Just `/etl` tests
|
|
|
|
```bash
|
|
docker-compose run backend python -bb -m pytest tests/etl/
|
|
```
|
|
|
|
Just the `test_ingest_pending_pulse_job` within the `/etl` tests
|
|
|
|
```bash
|
|
docker-compose run backend python -bb -m pytest tests/ -k test_ingest_pending_pulse_job
|
|
```
|
|
|
|
## Selenium
|
|
|
|
The Selenium tests are written in Python, so when you execute some of the
|
|
commands above, you will execute the Selenium tests as well.
|
|
|
|
The Selenium tests require a UI build. So you will need to use two terminal
|
|
windows. In the first, run this:
|
|
|
|
```bash
|
|
docker-compose up --build
|
|
```
|
|
|
|
Then to execute the tests:
|
|
|
|
```bash
|
|
docker-compose run backend python -bb -m pytest tests/selenium/
|
|
```
|
|
|
|
[eslint]: https://eslint.org
|