mirror of
https://github.com/microsoft/agent-framework.git
synced 2026-06-16 21:04:09 +08:00
acc49196c1
* updated integration tests and guidance * fixed merge test * updated integration tests * fix: remove duplicate --dist loadfile flag from pytest-xdist config Only one --dist mode can be active at a time; the second value silently overrides the first. Keep --dist worksteal (dynamic load balancing) and remove the redundant --dist loadfile from all workflow files and pyproject.toml configs. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * docs: add keep-in-sync notes for merge and integration test workflows Both python-merge-tests.yml and python-integration-tests.yml share the same parallel job structure. Added sync reminders in workflow file comments, the python-testing SKILL.md, and CODING_STANDARD.md. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * refactor: remove RUN_INTEGRATION_TESTS flag Integration test gating now uses two mechanisms: - `@pytest.mark.integration` for test selection via `-m` filtering - `skip_if_*_disabled` for credential/service availability checks The RUN_INTEGRATION_TESTS env var was redundant since the marker handles selection and the skip decorators already check for actual credentials. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * fix: sync missing env vars from merge-tests to integration-tests Add OPENAI_EMBEDDINGS_MODEL_ID and AZURE_OPENAI_EMBEDDING_DEPLOYMENT_NAME to python-integration-tests.yml to match python-merge-tests.yml. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * fix: remove remaining RUN_INTEGRATION_TESTS from embedding tests and docs Missed test_openai_embedding_client.py and vector-stores README in the earlier cleanup. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * set functions tests to 3.10 --------- Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
acc49196c1
ยท
2026-02-24 09:35:46 +00:00
History
Sample Integration Tests
Integration tests that validate the Durable Agent Framework samples by running them as Azure Functions.
Setup
1. Create .env file
Copy .env.example to .env and fill in your Azure credentials:
cp .env.example .env
Required variables:
AZURE_OPENAI_ENDPOINTAZURE_OPENAI_CHAT_DEPLOYMENT_NAMEAZURE_OPENAI_API_KEYAzureWebJobsStorageDURABLE_TASK_SCHEDULER_CONNECTION_STRINGFUNCTIONS_WORKER_RUNTIME
2. Start required services
Azurite (for orchestration tests):
docker run -d -p 10000:10000 -p 10001:10001 -p 10002:10002 mcr.microsoft.com/azure-storage/azurite
Durable Task Scheduler:
docker run -d -p 8080:8080 -p 8082:8082 -e DTS_USE_DYNAMIC_TASK_HUBS=true mcr.microsoft.com/dts/dts-emulator:latest
Running Tests
The tests automatically start and stop the Azure Functions app for each sample.
Run all sample tests
uv run pytest packages/azurefunctions/tests/integration_tests -v
Run specific sample
uv run pytest packages/azurefunctions/tests/integration_tests/test_01_single_agent.py -v
Run with verbose output
uv run pytest packages/azurefunctions/tests/integration_tests -sv
How It Works
Each test file uses pytest markers to automatically configure and start the function app:
pytestmark = [
pytest.mark.sample("01_single_agent"),
pytest.mark.usefixtures("function_app_for_test"),
skip_if_azure_functions_integration_tests_disabled,
]
The function_app_for_test fixture:
- Loads environment variables from
.env - Validates required variables are present
- Starts the function app on a dynamically allocated port
- Waits for the app to be ready
- Runs your tests
- Tears down the function app
Troubleshooting
Missing environment variables:
Ensure your .env file contains all required variables from .env.example.
Tests timeout: Check that Azure OpenAI credentials are valid and the service is accessible.