mirror of
https://github.com/chanzuckerberg/cellxgene.git
synced 2026-09-15 12:47:56 +08:00
Collect all env vars in one, easy-to-find place (#1149)
* Collect all env vars in one, easy-to-find place Past state: * Default environement variables were stored in both client/package.json and client/__tests__/e2e/config.js * Constants that should have been linked--like the cellxgene server port during testing--were repeated. With this commit: * All environment variables are parameterized * All environment variables are packaged in default env files * Move npm scripts to client Makefile * Respond to feedback from @seve and @bkmartinjr
This commit is contained in:
@@ -9,6 +9,12 @@
|
||||
|
||||
**All instructions are expected to be run from the top level cellxgene directory unless otherwise specified.**
|
||||
|
||||
### Environment
|
||||
|
||||
For all `make` commands, `common.mk` automatically checks whether required environment variables are set and, if they are not set, assigns them default values from `environment.default`.
|
||||
|
||||
You can set these environment variables manually with the `export` shell command, as in `export JEST_ENV=debug`.
|
||||
|
||||
## Running test suite
|
||||
Client and server tests run on Travis CI for every push, PR, and commit to master on github. End to end tests run nightly on master only.
|
||||
|
||||
@@ -18,21 +24,19 @@ Steps to run the all unit tests:
|
||||
1. `make dev-env`
|
||||
1. `make unit-test`
|
||||
|
||||
To run unit tests for the `client` code only:
|
||||
1. Start in the project root directory
|
||||
1. `cd client`
|
||||
1. `make unit-test`
|
||||
|
||||
### End to end tests
|
||||
|
||||
End to end tests use two env variables:
|
||||
* `JEST_ENV` - environment to run end to end tests. Default `dev`
|
||||
* `prod` - run headless with no slowdown, chromium will not open.
|
||||
* `dev` - opens chromimum, runs tests with minimal slowdown, close on exit.
|
||||
* `debug` - opens chromium, runs tests with 100ms slowdown, dev tools open, chrome stays open on exit.
|
||||
* `JEST_CXG_PORT` - port that end to end tests are being run on. Default `3000` (client hosted port).
|
||||
To run E2E tests, run `cd client` and `make smoke-test`
|
||||
|
||||
On CI the end to end tests are run with `JEST_ENV` set to `prod` using the `smoke-test` make target.
|
||||
|
||||
To run end to end tests as they will be run on CI use the following command:
|
||||
```
|
||||
JEST_ENV=prod JEST_CXG_PORT=5000 make pydist install-dist dev-env smoke-test
|
||||
```
|
||||
The `JEST_ENV` environment variable enables the following E2E test options:
|
||||
* `dev` - opens chromimum, runs tests with minimal slowdown, close on exit.
|
||||
* `debug` - opens chromium, runs tests with 100ms slowdown, dev tools open, chrome stays open on exit.
|
||||
* `prod` - run headless with no slowdown, chromium will not open.
|
||||
|
||||
Run end to end tests interactively during development
|
||||
1. cellxgene should be installed as [specified in client dev](#install-1)
|
||||
@@ -40,6 +44,11 @@ Run end to end tests interactively during development
|
||||
1. Run `npm run e2e` or `make e2e` from the `client` directory
|
||||
1. To debug a failing test `export JEST_ENV='debug'` and re-run.
|
||||
|
||||
To run end to end tests _exactly_ as they will be run on CI use the following command:
|
||||
```
|
||||
JEST_ENV=prod make pydist install-dist dev-env smoke-test
|
||||
```
|
||||
|
||||
## Server dev
|
||||
### Install
|
||||
* Build the client and put static files in place: `make build-for-server-dev`
|
||||
|
||||
Reference in New Issue
Block a user