mirror of
https://github.com/hasura/graphql-engine.git
synced 2024-12-15 01:12:56 +03:00
98ccd81704
GITHUB_PR_NUMBER: 6125 GITHUB_PR_URL: https://github.com/hasura/graphql-engine/pull/6125 Co-authored-by: Karthikeyan Chinnakonda <15602904+codingkarthik@users.noreply.github.com> GitOrigin-RevId: 53d0671e6335dad1af7cb00e3e05e7021a910673 |
||
---|---|---|
.. | ||
pgdump | ||
queries | ||
remote_schemas/nodejs | ||
test_tests | ||
webhook/insecure | ||
.gitignore | ||
conftest.py | ||
context.py | ||
graphql_server.py | ||
jwk_server.py | ||
pytest.ini | ||
README.md | ||
remote_server.py | ||
requirements-top-level.txt | ||
requirements.txt | ||
super_classes.py | ||
test_actions.py | ||
test_allowlist_queries.py | ||
test_apis_disabled.py | ||
test_compat.py | ||
test_compression.py | ||
test_config_api.py | ||
test_cookie_webhook.py | ||
test_cors.py | ||
test_events.py | ||
test_graphql_introspection.py | ||
test_graphql_mutations.py | ||
test_graphql_queries.py | ||
test_heterogeneous.py | ||
test_horizontal_scale.py | ||
test_inconsistent_meta.py | ||
test_jwk.py | ||
test_jwt_claims_map.py | ||
test_jwt.py | ||
test_logging.py | ||
test_pg_dump.py | ||
test_remote_relationships.py | ||
test_remote_schema_permissions.py | ||
test_scheduled_triggers.py | ||
test_schema_duplication.py | ||
test_schema_stitching.py | ||
test_subscriptions.py | ||
test_tests.py | ||
test_v1_queries.py | ||
test_v1alpha1_endpoint.py | ||
test_validation.py | ||
test_version.py | ||
test_webhook_insecure.py | ||
test_webhook.py | ||
test_websocket_init_cookie.py | ||
validate.py | ||
webhook.py | ||
webserver.py |
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 F
s and E
s.
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
dir
variable 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
DefaultTestSelectQueries
class. - This class defines a fixture which will run the configurations in
setup.yaml
andteardown.yaml
once 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_setup
andschema_teardown
per class - And
values_setup
andvalues_teardown
per test - Doing schema setup and teardown per test is expensive.
- We are extending the
DefaultTestMutations
class for this. - This class defines a fixture which will run the configuration in
setup.yaml
andteardown.yaml
once per class. - Another fixture defined in this class runs the configuration in
values_setup.yaml
andvalues_teardown.yaml
once per class.
- We need a