tests: update test run doc and add some improvements (#10339)

* fix: update tests/run.sh README to pytest and some improvements

* update docs

* nit

* fix doc
This commit is contained in:
Daniel Vaz Gaspar 2020-07-16 13:03:49 +01:00 committed by GitHub
parent 4529812a10
commit e4c9c7364b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 33 additions and 24 deletions

View File

@ -24,38 +24,50 @@ so prior to using this script make sure to launch the dev containers.
You can use a different DB backend by defining `SUPERSET__SQLALCHEMY_DATABASE_URI` env var. You can use a different DB backend by defining `SUPERSET__SQLALCHEMY_DATABASE_URI` env var.
This script will not install any dependencies for you, so you must be on an already set virtualenv
## Use: ## Use:
To show all supported switches:
```$bash
scripts/tests/run.sh --help
```
From the superset repo root directory: From the superset repo root directory:
- Example run all tests:
```$bash
scripts/tests/run.sh
```
- Example run a single test module: - Example run a single test module:
```$bash ```$bash
scripts/tests/run.sh tests.charts.api_tests scripts/tests/run.sh --module tests/charts/api_tests.py
``` ```
- Example run a single test: - Example run a single test:
```$bash ```$bash
scripts/tests/run.sh tests.charts.api_tests:ChartApiTests.test_get_charts scripts/tests/run.sh --module tests/charts/api_tests.py::TestChartApi::test_get_charts
``` ```
- Example run a single test, without any init procedures. Init procedures include: - Example run a single test, without any init procedures. Init procedures include:
resetting test database, db upgrade, superset init, loading example data. If your tests resetting test database, db upgrade, superset init, loading example data. If your tests
are idempotent, after the first run, subsequent runs are really fast are idempotent, after the first run, subsequent runs are really fast
```$bash ```$bash
scripts/tests/run.sh tests.charts.api_tests:ChartApiTests.test_get_charts --no-init scripts/tests/run.sh --module tests/charts/api_tests.py::TestChartApi::test_get_charts --no-init
``` ```
- Example for not recreating the test DB (will still run all the tests init procedures) - Example for not recreating the test DB (will still run all the tests init procedures)
```$bash ```$bash
scripts/tests/run.sh tests.charts.api_tests:ChartApiTests.test_get_charts --no-reset-db scripts/tests/run.sh --module tests/charts/api_tests.py::TestChartApi::test_get_charts --no-reset-db
``` ```
- Example for not running tests just initialize the test DB (drop/create, upgrade and load examples) - Example for not running tests just initialize the test DB (drop/create, upgrade and load examples)
```$bash ```$bash
scripts/tests/run.sh . --no-tests scripts/tests/run.sh --no-tests
``` ```
- Example for just resetting the tests DB - Example for just resetting the tests DB
```$bash ```$bash
scripts/tests/run.sh . --reset-db scripts/tests/run.sh --reset-db --no-tests
``` ```

View File

@ -59,19 +59,6 @@ function test_init() {
pytest -s tests/load_examples_test.py pytest -s tests/load_examples_test.py
} }
if [[ "$#" -eq "0" ]]
then
echo "No argument suplied"
echo ------------------------
echo use:
echo "run.sh <test module name> [options]"
echo "[options]:"
echo "--no-init: Dont restart docker and no db migrations, superset init and test data"
echo "--no-reset-db: Recreates test database (DROP, CREATE)"
exit 1
fi
# #
# Init global vars # Init global vars
# #
@ -83,14 +70,20 @@ export SUPERSET_CONFIG=${SUPERSET_CONFIG:-tests.superset_test_config}
RUN_INIT=1 RUN_INIT=1
RUN_RESET_DB=1 RUN_RESET_DB=1
RUN_TESTS=1 RUN_TESTS=1
TEST_MODULE="${1}" TEST_MODULE="tests"
# Shift to pass the first cmd parameter for the test module
shift 1
PARAMS="" PARAMS=""
while (( "$#" )); do while (( "$#" )); do
case "$1" in case "$1" in
--help)
echo Switches:
echo --no-init : Will not, reset the test DB, superset init and load examples
echo --no-reset-db: Will not reset the test DB
echo --no-tests: Will not run any test, by default reset the DB, superset init and load_examples
echo --reset-db: Just resets the test DB, will not run any test
echo --module: Run a specific test module: --module tests/charts/api_tests.py for example
exit 0
;;
--no-init) --no-init)
RUN_INIT=0 RUN_INIT=0
RUN_RESET_DB=0 RUN_RESET_DB=0
@ -109,6 +102,10 @@ while (( "$#" )); do
RUN_INIT=0 RUN_INIT=0
shift 1 shift 1
;; ;;
--module)
TEST_MODULE=$2
shift 2
;;
--) # end argument parsing --) # end argument parsing
shift shift
break break
@ -145,5 +142,5 @@ fi
if [ $RUN_TESTS -eq 1 ] if [ $RUN_TESTS -eq 1 ]
then then
pytest -s --ignore=load_examples_test "${TEST_MODULE}" pytest -x -s --ignore=load_examples_test "${TEST_MODULE}"
fi fi