mirror of
https://github.com/comfyanonymous/ComfyUI.git
synced 2026-02-23 00:14:05 +00:00
[docs] Add OpenAPI specification and test framework
This commit is contained in:
74
tests-api/README.md
Normal file
74
tests-api/README.md
Normal file
@@ -0,0 +1,74 @@
|
||||
# ComfyUI API Testing
|
||||
|
||||
This directory contains tests for validating the ComfyUI OpenAPI specification against a running instance of ComfyUI.
|
||||
|
||||
## Setup
|
||||
|
||||
1. Install the required dependencies:
|
||||
|
||||
```bash
|
||||
pip install -r requirements.txt
|
||||
```
|
||||
|
||||
2. Make sure you have a running instance of ComfyUI (default: http://127.0.0.1:8188)
|
||||
|
||||
## Running the Tests
|
||||
|
||||
Run all tests with pytest:
|
||||
|
||||
```bash
|
||||
cd tests-api
|
||||
pytest
|
||||
```
|
||||
|
||||
Run specific test files:
|
||||
|
||||
```bash
|
||||
pytest test_spec_validation.py
|
||||
pytest test_endpoint_existence.py
|
||||
pytest test_schema_validation.py
|
||||
pytest test_api_by_tag.py
|
||||
```
|
||||
|
||||
Run tests with more verbose output:
|
||||
|
||||
```bash
|
||||
pytest -v
|
||||
```
|
||||
|
||||
## Test Categories
|
||||
|
||||
The tests are organized into several categories:
|
||||
|
||||
1. **Spec Validation**: Validates that the OpenAPI specification is valid.
|
||||
2. **Endpoint Existence**: Tests that the endpoints defined in the spec exist on the server.
|
||||
3. **Schema Validation**: Tests that the server responses match the schemas defined in the spec.
|
||||
4. **Tag-Based Tests**: Tests that the API's tag organization is consistent.
|
||||
|
||||
## Using a Different Server
|
||||
|
||||
By default, the tests connect to `http://127.0.0.1:8188`. To test against a different server, set the `COMFYUI_SERVER_URL` environment variable:
|
||||
|
||||
```bash
|
||||
COMFYUI_SERVER_URL=http://example.com:8188 pytest
|
||||
```
|
||||
|
||||
## Test Structure
|
||||
|
||||
- `conftest.py`: Contains pytest fixtures used by the tests.
|
||||
- `utils/`: Contains utility functions for working with the OpenAPI spec.
|
||||
- `test_*.py`: The actual test files.
|
||||
- `resources/`: Contains resources used by the tests (e.g., sample workflows).
|
||||
|
||||
## Extending the Tests
|
||||
|
||||
To add new tests:
|
||||
|
||||
1. For testing new endpoints, add them to the appropriate test file based on their category.
|
||||
2. For testing more complex functionality, create a new test file following the established patterns.
|
||||
|
||||
## Notes
|
||||
|
||||
- Tests that require a running server will be skipped if the server is not available.
|
||||
- Some tests may fail if the server doesn't match the specification exactly.
|
||||
- The tests don't modify any data on the server (they're read-only).
|
||||
Reference in New Issue
Block a user