名称: phx:verify 描述: Elixir/Phoenix更改的完整验证循环。在做出代码更改后使用以确保质量。
验证循环
Elixir/Phoenix项目的完整验证工作流。在提交或PR之前运行以确保代码质量。
铁律 - 永不违反
- 按顺序运行 - 每一步必须在继续下一步之前通过
- 立即修复问题 - 不要批量修复;在继续之前解决每个失败
- 警告即错误 - 使用
--warnings-as-errors标志;没有例外 - 在PR前进行完整Dialyzer - 总是在创建拉取请求之前运行Dialyzer
验证序列
按顺序执行这些命令,在任何失败时停止:
步骤1: 编译(快速反馈)
mix compile --warnings-as-errors
捕获:未定义函数、缺失模块、类型不匹配、未使用变量
步骤2: 格式化
mix format --check-formatted
如果失败:运行 mix format 并重新检查
步骤3: Credo分析
mix credo --strict
解决所有标记为一致性或设计问题的问题
步骤4: 运行测试
# 针对特定上下文更改
mix test test/my_app/[changed_context]_test.exs --trace
# 针对完整测试套件
mix test --trace
所有测试必须通过
步骤5: Dialyzer(PR前必需)
mix dialyzer
不允许新警告。首次运行构建PLT缓存(慢)。
处理Dialyzer警告:优先修复而非抑制。
如果抑制必要,添加到 .dialyzer_ignore.exs 并
注释解释原因。永远不要抑制你不理解的警告——先调查。
快速参考
| 步骤 | 命令 | 时间 | 何时必需 |
|---|---|---|---|
| 编译 | mix compile --warnings-as-errors |
快速 | 总是 |
| 格式化 | mix format --check-formatted |
快速 | 总是 |
| Credo | mix credo --strict |
中等 | 总是 |
| 测试 | mix test --trace |
中等 | 总是 |
| Dialyzer | mix dialyzer |
慢 | PR前 |
使用
在做出代码更改后:
- 运行
/phx:verify执行完整循环 - 在继续之前解决任何失败
- 仅在所有检查通过后提交
在开发期间进行部分验证时,根据需要运行单个步骤。