Speakeasy Logo
Skip to Content

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 will run against a mock server to validate the correctness of the SDK’s 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:

Enabling Test Generation

Navigate to the SDK repo and run the following command:

This command will enable both generateTests and generateNewTests settings in your gen.yaml configuration file.

Test generation and mock API server generation will be enabled when the following exist in the generation section of the configuration.

The generateTests setting controls whether test generation is enabled when running speakeasy run. When set to true, tests defined in the .speakeasy/tests.arazzo.yaml document will be generated. When set to false, tests won’t be generated.

The generateNewTests setting controls whether new tests are automatically added to the .speakeasy/tests.arazzo.yaml document when new operations are found in the OpenAPI specification.

When enabling for the first time this will generate tests for all operations in the OpenAPI document. Then going forward it will only generate tests for any operations not already found in the .speakeasy/tests.arazzo.yaml file.

Disabling test generation

To completely disable test generation, delete the .speakeasy/tests.arazzo.yaml file from your repository:

The existence of this file is what triggers test generation. Once removed, no tests will be generated regardless of your configuration.

Disable test generation for specific operations

After enabling test generation, to disable generation of tests for a specific operation, explicitly set x-speakeasy-test: false:

Generated Test Location

Generated test files are written in language-specific locations, relative to the root of the SDK:

Language
Go
Location
Python
Location
TypeScript
Location
Java
Location

If the mock server is also generated, its output will be in a mockserver directory under these locations.

Next Steps

Last updated on