{ "cells": [ { "attachments": {}, "cell_type": "markdown", "metadata": {}, "source": [ "运行 xUnit 单元测试\n", "=====================" ] }, { "attachments": {}, "cell_type": "markdown", "metadata": {}, "source": [ "## 1、引入必要的NuGet包到.NET Interactive环境中" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "dotnet_interactive": { "language": "csharp" }, "polyglot_notebook": { "kernelName": "csharp" } }, "outputs": [], "source": [ "// 默认包源\n", "#i \"https://api.nuget.org/v3/index.json\"\n", "\n", "//Nuget 包引用\n", "#r \"nuget:xunit\"\n", "#r \"nuget:xunit.runner.visualstudio\"\n", "#r \"nuget:xunit.runner.console\"" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 2、定义测试类和测试方法" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "dotnet_interactive": { "language": "csharp" }, "polyglot_notebook": { "kernelName": "csharp" } }, "outputs": [], "source": [ "using Xunit;\n", "\n", "public class CalculatorTests\n", "{\n", " [Fact]\n", " public void Add_ReturnsCorrectSum()\n", " {\n", " var calculator = new Calculator();\n", " var result = calculator.Add(2, 2);\n", " Assert.Equal(4, result);\n", " }\n", "\n", " [Fact]\n", " public void Subtract_ReturnsCorrectDifference()\n", " {\n", " var calculator = new Calculator();\n", " var result = calculator.Subtract(5, 3);\n", " Assert.Equal(2, result);\n", " }\n", "}\n", "\n", "public class Calculator\n", "{\n", " public int Add(int x, int y) => x + y;\n", " public int Subtract(int x, int y) => x - y;\n", "}\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 3、执行测试并获取结果。在.NET Interactive中,直接运行xUnit测试并不像在Visual Studio或通过命令行那样直接。你需要手动实例化测试类并调用测试方法,或者使用反射来自动发现和执行测试方法。以下是一个简化的例子,展示如何手动执行测试方法并输出结果。" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "dotnet_interactive": { "language": "csharp" }, "polyglot_notebook": { "kernelName": "csharp" } }, "outputs": [], "source": [ "// 手动执行测试方法\n", "var calculatorTests = new CalculatorTests();\n", "\n", "// 执行Add_ReturnsCorrectSum测试\n", "calculatorTests.Add_ReturnsCorrectSum();\n", "\n", "// 执行Subtract_ReturnsCorrectDifference测试\n", "calculatorTests.Subtract_ReturnsCorrectDifference();\n", "\n", "Console.WriteLine(\"Tests executed successfully.\");\n" ] } ], "metadata": { "kernelspec": { "display_name": ".NET (C#)", "language": "C#", "name": ".net-csharp" }, "language_info": { "name": "polyglot-notebook" }, "orig_nbformat": 4, "polyglot_notebook": { "kernelInfo": { "defaultKernelName": "csharp", "items": [ { "aliases": [], "name": "csharp" }, { "aliases": [], "name": "razor" } ] } } }, "nbformat": 4, "nbformat_minor": 2 }