Bootstrapping SDK Tests
Automatically generate tests for SDKs. Speakeasy can boostrap tests for all operations including any new operations added in the future.
These tests use any examples available in the OpenAPI document if available, or autogenerate examples based on the field name, type, and format of schemas.
Multiple tests per operation can be configured using the named examples detailed for parameters, request bodies and responses.
By default these tests run against a mock server to validate the correctness of SDK serialization and deserialization.
Tests are boostrapped into a .speakeasy/tests.arazzo.yaml
file in the SDK repo. Once the test exists it can be customized from that .speakeasy/tests.arazzo.yaml
without being overwritten.
Prerequisites
The following are requirements for generating tests:
- Testing feature prerequisites are met.
Enabling Test Generation
Navigate to the SDK repo and run the following command:
speakeasy configure tests
Test generation and mock API server generation are enabled when the following exist in the generation
section of the configuration.
configVersion: 2.0.0generation:# ... other existing configuration ...tests:generateNewTests: true
When enabling for the first time this generates tests for all operations in the OpenAPI document.
Then going forward it only generates tests for any operations not already found in the .speakeasy/tests.arazzo.yaml
file.
After enabling test generation, to disable generation of tests for a specific operation, explicitly set x-speakeasy-test: false
:
paths:/example1:get:# This operation, without being explicitly disabled, will generate testing.# ... operation configuration .../example2:get:# This operation will not generate testing.# ... other operation configuration ...x-speakeasy-test: false
Generated Test Location
Generated test files are written in language-specific locations, relative to the root of the SDK:
Language | Location |
---|---|
Go | tests/ |
Python | tests/ |
TypeScript | src/__tests__ |
Java | src/test/java |
If the mock server is also generated, its output will be in a mockserver
directory under these locations.