{"repo":"mehrandvd/skunit","free":true,"listed":false,"github":"https://github.com/mehrandvd/skunit","clone":"git clone https://github.com/mehrandvd/skunit.git","description":"skUnit is a testing tool for AI units, such as IChatClient, MCP Servers and agents.","language":"C#","stars":180,"topics":["semantic-kernel","csharp","dotnet","gpt-plugins","openai","test","test-automation","testing","testing-tools","mcp"],"license":"MIT","category":"dev-tools","readme_excerpt":"# skUnit skUnit is a semantic testing framework for .NET — write AI tests in plain Markdown , run them with xUnit, NUnit, or MSTest . Test anything that talks to AI: - AI Agents (Microsoft Agent Framework, A2A) - IChatClient (Microsoft Extensions AI) - MCP servers (Model Context Protocol) - Custom AI integrations Quick Start Imagine you have an AIAgent configured to answer questions about a bank account. Here's a test scenario in Markdown, balance-test.md : And the C# test: That's it. skUnit drives the conversation, calls your AI, and semantically verifies the response. Tip — Parameterized scenarios: Use {placeholders} in your Markdown and replace them with C# string manipulation to run the same scenario with different inputs. Key Features 1. Function Call Assertion Verify that your agent calls the right tool with the right arguments : You can also assert on the arguments passed to the function, using exact or semantic matching: See ASSERT JsonCheck for full JSON schema validation. --- 2. Multi-Turn Conversations Test realistic back-and-forth conversations — each turn gets its own assertions: Each [ASSISTANT] turn can carry multiple ASSERT statements to verify different aspects of the response independently. --- 3. MCP Server Testing Test Model Context Protocol servers end-to-end — same Markdown format, no extra APIs to learn: Wire up your MCP server in the test setup: Need to test multiple MCP servers together? Merge their tool lists before creating the agent — see MCP Testi","default_branch":null,"files":null,"tree":[],"storefront":"/r/mehrandvd","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/mehrandvd/skunit/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}