SuperAPI AI 工具集

pester-migration

测试与质量

查看项目

更新于 10-15 21:52

技能介绍

用途:将现有 PowerShell Pester 测试套件从一个大版本升级到下一个大版本(v3→v4、v4→v5、v5→v6),并让测试重新通过。Pester 测试文件以 *.Tests.ps1 结尾,使用 Describe / Context / It 块配合 Should 断言。

主要能力:按版本跳转提供症状驱动的迁移指南,包括断言重命名(Should Be → Should -Be、Contain → FileContentMatch)、v4→v5 的 Discovery/Run 两阶段运行时改动(BeforeAll 初始化、$PSScriptRoot、BeforeDiscovery、-ForEach、mock 作用域、Should -Throw 通配符、Invoke-Pester → New-PesterConfiguration),以及 v5→v6 的破坏性变更(仅支持 PowerShell 5.1/7.4+、空 -ForEach 抛错、重复 setup 块抛错、Assert-MockCalled 移除并改为 Should -Invoke、mock 不再回退到真实命令、代码覆盖率 tracer、旧 Invoke-Pester 参数移除)。

使用方式:先检测已安装版本与测试所用版本(Get-Module Pester -ListAvailable、查看代码特征),再安装目标版本(Install-Module Pester -MaximumVersion 5.99.99 -Force 或 Install-Module Pester -Force)。迁移按固定循环进行:先跑基线并记录通过/失败,读取对应版本参考文档,逐文件做机械式修改,切换版本后重新导入(Remove-Module Pester; Import-Module Pester),用 -Output Detailed 或 -Output Diagnostic 运行并对照症状修复,最后比对基线、审查 diff 并提交。每次只升一个大版本,不可跳版。

适用场景:维护跨 Pester 版本的 PowerShell 测试套件、需要将旧断言和旧调用方式迁移到新配置模型的工程。

限制:Windows PowerShell 5.1 内置 Pester 3,需加 -SkipPublisherCheck 才能并行安装新版;自动迁移脚本会产生误报,必须人工审查 diff 并重跑;替换时需保留原文件编码以免破坏非 ASCII 测试名。资料未提供具体收费、平台或效果数据。