mirror of
https://github.com/zhigang1992/graphql-engine.git
synced 2026-01-12 22:47:35 +08:00
Running tests
The easiest way to run the test suite is to do:
$ scripts/dev.sh test
This should install python dependencies if required, and run in isolation. The output format is described in the pytest documentation. Errors and failures are indicated by Fs and Es.
Tests Structure
-
Tests are grouped as test classes in test modules (names starting with
test_) -
The configuration files (if needed) for the tests in a class are usually kept in one folder.
- The folder name is usually either the
dirvariable or thedir()function
- The folder name is usually either the
-
Some tests (like in
test_graphql_queries.py) requires a setup and teardown per class.- Here we are extending the
DefaultTestSelectQueriesclass. - This class defines a fixture which will run the configurations in
setup.yamlandteardown.yamlonce per class - Extending test class should define a function name
dir(), which returns the configuration folder
- Here we are extending the
-
For mutation tests (like in
test_graphql_mutations.py)- We need a
schema_setupandschema_teardownper class - And
values_setupandvalues_teardownper test - Doing schema setup and teardown per test is expensive.
- We are extending the
DefaultTestMutationsclass for this. - This class defines a fixture which will run the configuration in
setup.yamlandteardown.yamlonce per class. - Another fixture defined in this class runs the configuration in
values_setup.yamlandvalues_teardown.yamlonce per class.
- We need a