# Abp Pro Testing

> 本项目的测试和验证规则。新增或修改领域、应用、EF Core、集成或模块测试，以及运行 dotnet test、解释还原审计构建结果时使用。

- Skill: `wangjunzzz/abp-pro-testing` (Agent Skill)
- Install (CLI): `npx skillmds@latest add wangjunzzz/abp-pro-testing`
- Raw SKILL.md: https://api.skillmd.com/api/skills/wangjunzzz/abp-pro-testing/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: wangjunzzz (https://skillmd.com/u/wangjunzzz)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/wangjunzzz/abp-pro-testing

---


# ABP Pro 测试和验证

## 测试位置

- 领域规则放在所属 `*.Domain.Tests`。
- 应用用例放在 `*.Application.Tests`，复用现有 ABP 测试基类。
- 持久化行为放在 `*.EntityFrameworkCore.Tests` 或对应 FreeSql 测试项目。
- 复用模块已有测试基类和依赖配置，不重复创建 DI 测试框架。

## 测试原则

- 测试可观察行为：验证、授权、租户隔离、映射、持久化约束和事件效果。
- 使用 `GuidGenerator`、`Clock` 和 ABP 测试服务，避免静态随机状态和环境时间。
- 测试不依赖执行顺序。

## 命令和结果解释

```powershell
dotnet build <受影响项目> --no-restore
dotnet test <测试项目> --no-build
dotnet list <项目> package --vulnerable
```

- 先构建最小受影响项目，再构建共享 Host 或网关。
- 共享输出目录相关的 Host、网关和模块构建必须串行执行。
- `NU1900` 是漏洞数据源不可访问，不是安全审计通过；默认不要关闭审计。
- “没有可用测试”是测试发现失败或程序集为空，不能算测试通过。
- 完成前执行 `git diff --check`，并报告未能执行的命令及原因。

