集成测试
模板默认包含两个测试项目,均使用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。