Skip to content

Conversation

@cgillum
Copy link
Member

@cgillum cgillum commented Nov 7, 2025

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:

  • Microsoft.Agents.AI.DurableTask.IntegrationTests: integration tests for the core functionality
  • Microsoft.Agents.AI.Hosting.AzureFunctions.IntegrationTests: integration tests for the Azure Functions-specific functionality and for validating the Azure Functions samples

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

  • The code builds clean without any errors or warnings
  • The PR follows the Contribution Guidelines
  • All unit tests pass, and I have added new tests where possible
  • Is this a breaking change? If yes, add "[BREAKING]" prefix to the title of the PR.

Copilot AI review requested due to automatic review settings November 7, 2025 21:25
@cgillum cgillum marked this pull request as ready for review November 7, 2025 21:31
@cgillum cgillum requested review from a team and westey-m November 7, 2025 21:31
Copy link
Contributor

Copilot AI left a 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

@markwallace-microsoft markwallace-microsoft added the documentation Improvements or additions to documentation label Nov 8, 2025
Copilot AI review requested due to automatic review settings November 8, 2025 22:33
Copy link
Contributor

Copilot AI left a 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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Improvements or additions to documentation .NET

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants