👨‍💻 niltor    📆 2026-08-13 12:23

集成测试

模板默认包含两个测试项目,均使用TUnit:tests/UnitTest用于不依赖基础设施的单元测试,tests/ApiTest用于 Aspire 集成测试。

ApiTest的全局钩子只在该项目中启动 AppHost,不会影响UnitTest的快速执行。

运行测试

先运行不启动 Aspire 的单元测试:

dotnet test --project tests/UnitTest/UnitTest.csproj

需要真实数据库和服务时,再运行集成测试(需要 Docker/Podman):

dotnet test --project tests/ApiTest/ApiTest.csproj --treenode-filter '/*/*/*/*[Category=Integration]'

集成测试会使用Aspire来启动所有基础设施和服务,更加接近真实环境。

编写测试

你可以借助AI来生成测试代码。通常就是请求接口并断言响应结果。

TestHttpClientData类包含了HttpClient实例,可以用来发送请求。模板不创建默认管理员账号;如安装了SystemMod,请通过PERIGON_TEST_ADMIN_EMAIL和PERIGON_TEST_ADMIN_PASSWORD环境变量提供测试账号,InitializeAsync才会登录获取 token。

In this article