-
Notifications
You must be signed in to change notification settings - Fork 686
.NET: [Feature Branch] Durable Task extension integration tests #2017
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: feature-azure-functions
Are you sure you want to change the base?
.NET: [Feature Branch] Durable Task extension integration tests #2017
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
This PR introduces comprehensive integration testing infrastructure for Azure Functions and DurableTask agents. The changes add two new integration test projects with sample validation and external client testing capabilities, along with test helper classes for logging and configuration management. Additionally, multiple sample applications are updated to use fully-qualified System.Environment for better clarity.
- New integration test projects for Azure Functions hosting and DurableTask functionality
- Sample validation tests that automatically start and test all Azure Functions samples
- External client tests for agent interactions with function tools and workflows
- Test infrastructure including custom logging providers and helper utilities
Reviewed Changes
Copilot reviewed 18 out of 18 changed files in this pull request and generated 11 comments.
Show a summary per file
| File | Description |
|---|---|
| dotnet/tests/Microsoft.Agents.AI.Hosting.AzureFunctions.IntegrationTests/SamplesValidation.cs | Comprehensive integration tests that validate all Azure Functions samples by starting Docker containers, running samples, and verifying expected behavior |
| dotnet/tests/Microsoft.Agents.AI.Hosting.AzureFunctions.IntegrationTests/Microsoft.Agents.AI.Hosting.AzureFunctions.IntegrationTests.csproj | Project file for Azure Functions integration tests with ModelContextProtocol dependency |
| dotnet/tests/Microsoft.Agents.AI.DurableTask.IntegrationTests/TestHelper.cs | Test helper class providing infrastructure for starting durable agents, configuring chat clients, and capturing responses |
| dotnet/tests/Microsoft.Agents.AI.DurableTask.IntegrationTests/Logging/TestLoggerProvider.cs | Custom logger provider for capturing and querying test logs by category |
| dotnet/tests/Microsoft.Agents.AI.DurableTask.IntegrationTests/Logging/TestLogger.cs | Logger implementation that captures log entries and writes them to test output |
| dotnet/tests/Microsoft.Agents.AI.DurableTask.IntegrationTests/Logging/LogEntry.cs | Data structure representing captured log entries with timestamp and context |
| dotnet/tests/Microsoft.Agents.AI.DurableTask.IntegrationTests/ExternalClientTests.cs | Tests for external clients interacting with durable agents including function tools and workflows |
| dotnet/tests/Microsoft.Agents.AI.DurableTask.IntegrationTests/AgentEntityTests.cs | Tests verifying agent entity naming conventions and state storage |
| dotnet/tests/Microsoft.Agents.AI.DurableTask.IntegrationTests/Microsoft.Agents.AI.DurableTask.IntegrationTests.csproj | Project file for DurableTask integration tests with Azure AI OpenAI and DurableTask dependencies |
| dotnet/tests/Microsoft.Agents.AI.DurableTask.UnitTests/Microsoft.Agents.AI.DurableTask.UnitTests.csproj | Added UserSecretsId for configuration management |
| dotnet/samples/AzureFunctions/07_AgentAsMcpTool/Program.cs | New sample demonstrating agent exposure as MCP tools |
| dotnet/samples/AzureFunctions/06_LongRunningTools/Program.cs | Updated to use System.Environment for consistency |
| dotnet/samples/AzureFunctions/05_AgentOrchestration_HITL/Program.cs | Updated to use System.Environment for consistency |
| dotnet/samples/AzureFunctions/04_AgentOrchestration_Conditionals/Program.cs | Updated to use System.Environment for consistency |
| dotnet/samples/AzureFunctions/03_AgentOrchestration_Concurrency/Program.cs | Updated to use System.Environment for consistency |
| dotnet/samples/AzureFunctions/02_AgentOrchestration_Chaining/Program.cs | Updated to use System.Environment for consistency |
| dotnet/samples/AzureFunctions/01_SingleAgent/Program.cs | Updated to use System.Environment for consistency |
| dotnet/agent-framework-dotnet.slnx | Added the two new integration test projects to the solution |
...ents.AI.DurableTask.IntegrationTests/Microsoft.Agents.AI.DurableTask.IntegrationTests.csproj
Show resolved
Hide resolved
dotnet/tests/Microsoft.Agents.AI.Hosting.AzureFunctions.IntegrationTests/SamplesValidation.cs
Show resolved
Hide resolved
dotnet/tests/Microsoft.Agents.AI.Hosting.AzureFunctions.IntegrationTests/SamplesValidation.cs
Outdated
Show resolved
Hide resolved
dotnet/tests/Microsoft.Agents.AI.DurableTask.IntegrationTests/TestHelper.cs
Outdated
Show resolved
Hide resolved
dotnet/tests/Microsoft.Agents.AI.Hosting.AzureFunctions.IntegrationTests/SamplesValidation.cs
Outdated
Show resolved
Hide resolved
dotnet/tests/Microsoft.Agents.AI.DurableTask.IntegrationTests/ExternalClientTests.cs
Outdated
Show resolved
Hide resolved
dotnet/tests/Microsoft.Agents.AI.DurableTask.IntegrationTests/ExternalClientTests.cs
Outdated
Show resolved
Hide resolved
dotnet/tests/Microsoft.Agents.AI.Hosting.AzureFunctions.IntegrationTests/SamplesValidation.cs
Outdated
Show resolved
Hide resolved
dotnet/tests/Microsoft.Agents.AI.Hosting.AzureFunctions.IntegrationTests/SamplesValidation.cs
Outdated
Show resolved
Hide resolved
dotnet/tests/Microsoft.Agents.AI.Hosting.AzureFunctions.IntegrationTests/SamplesValidation.cs
Show resolved
Hide resolved
…-framework into integration-tests2
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
Copilot reviewed 20 out of 20 changed files in this pull request and generated 8 comments.
Motivation and Context
This is a continuation of the work to port the Durable Task extensions for MAF into the MAF repo. This step specifically covers integration tests, which is the final step in the migration for the .NET code.
Description
This PR introduces two projects:
These integration tests rely on Azure OpenAI, the Durable Task Scheduler (emulator), the Azurite (Azure Storage emulator), and the Azure Functions Core Tools. The latter two are only for the Functions integration tests.
Importantly, the Azure Functions integration test project validates the samples that we're shipping under
/dotnet/samples/AzureFunctions, ensuring that they continue to work as we evolve the codebase.There is no additional product code added in this PR.
Contribution Checklist