Skip to content

Latest commit

 

History

History
81 lines (59 loc) · 2.52 KB

File metadata and controls

81 lines (59 loc) · 2.52 KB

v0.3.1 Release Notes

新功能

1. 测试文件自动生成 (--include-tests)

新增 --include-tests 命令行标志,让 devgen 在生成代码的同时自动生成对应的测试文件。

devgen --include-tests ./...

genkit 框架变更:

  • Options 新增 IncludeTests 字段
  • Generator 新增 IncludeTests() 方法,供工具查询是否需要生成测试文件

enumgen 生成的测试文件 (*_enum_test.go):

  • Test<Type>_IsValid - 测试所有枚举值的有效性
  • Test<Type>_String - 测试 String() 方法(如启用)
  • Test<Type>Enums_List - 验证 List() 返回的枚举值列表
  • Test<Type>Enums_Names - 验证 Names() 返回的名称列表
  • Test<Type>Enums_Name - 测试 Name() 方法
  • Test<Type>Enums_ContainsName - 测试 ContainsName() 方法
  • JSON/Text/SQL 序列化测试(如启用对应选项)

validategen 生成的测试文件 (*_validate_test.go):

  • 为每个验证类型生成表驱动测试
  • 自动生成有效和无效的测试用例
  • 支持 @required@gt@lt@gte@lte@email@url 等规则的测试

validategen 内部重构:

  • Validate() 方法拆分为三部分:
    • _validate() - 字段级验证(不含 @method
    • _validateMethod() - 仅 @method 验证
    • Validate() - 组合调用上述方法 + postValidate()
  • 这种拆分便于单独测试字段验证逻辑,无需构造嵌套类型

2. VSCode 扩展 AI Rules 生成提示

当在 AI IDE(如 CodeBuddy)中打开 Go 项目时,扩展会询问是否生成 .codebuddy/rules/ 文件:

  • 生成 - 本次生成
  • 始终生成 - 保存到工作区设置,以后自动生成
  • 不再提示 - 保存到工作区设置,不再询问

配置项:devgen.rules.autoGenerate(可选值:askalwaysnever

3. Duration 验证代码可读性改进

validategen 生成的 duration 比较代码现在使用 time.Duration 常量,更易读:

// 之前
if d < 1000000000 { // 1s
    return errors.New("...")
}

// 现在
if d < 1*time.Second {
    return errors.New("...")
}

改进

Makefile 变更

  • 新增 generate target,运行 go run ./cmd/devgen --include-tests ./...
  • all target 现在包含 generate 步骤:tidy → generate → lint → test → build
  • test target 添加 --keep-going 参数,测试失败时继续运行其他测试

插件加载日志优化

# 之前
Loaded plugin: markgen

# 现在
📂  [LOAD] Loaded 1 plugin(s)
           • 'markgen'