mirror of
https://github.com/microsoft/agent-framework.git
synced 2026-06-16 21:04:09 +08:00
aa93e61e48
The Azure Functions Python worker crashes with SIGSEGV (exit code 139) on Python 3.13 due to protobuf C extension (google._upb) compatibility issues. When the test runner uses Python >=3.13, the conftest now automatically finds a compatible Python 3.10-3.12 and sets languageWorkers__python__defaultExecutablePath so the func host uses it for the worker process. The CI setup action also ensures Python 3.12 is available on the runner, falling back to uv python install if the system doesn't have it. Co-authored-by: larohra <41490930+larohra@users.noreply.github.com>
aa93e61e48
ยท
2026-02-26 16:52:50 +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.