You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在克隆的GitHub仓库本地成功运行Pester单元测试?

问题原因

报错的核心是Pester测试运行时,无法在PowerShell的模块搜索路径中找到构建完成的xFailOverCluster模块。该项目的构建脚本会将编译后的模块输出到项目根目录的output文件夹下,但默认情况下该路径未加入PowerShell的$env:PSModulePath搜索列表,因此直接运行测试或通过VS Code扩展运行都会触发模块加载失败的问题。

解决方案

方案1:使用项目内置脚本执行测试(最稳妥,符合项目CI规范)

直接运行以下命令,构建脚本会自动将输出目录加入模块搜索路径、加载所有依赖后执行全量单元测试:

.\build.ps1 -Tasks test

若只需运行单元测试、跳过集成测试,可添加路径参数过滤:

.\build.ps1 -Tasks test -PesterPath 'tests/Unit'

方案2:配置VS Code Pester Test Explorer适配

如果需要使用VS Code扩展的可视化测试运行、调试能力,按以下步骤配置即可:

  1. 先执行一次构建命令.\build.ps1 -Tasks build,确认output/xFailOverCluster/<版本号>/目录下存在完整的模块文件
  2. 在项目根目录创建/编辑.vscode/settings.json文件,添加以下配置:
{
    "pester.modulesPath": [
        "${workspaceFolder}/output",
        "${workspaceFolder}/output/RequiredModules"
    ],
    "pester.testPaths": [
        "${workspaceFolder}/tests/Unit"
    ]
}
  1. 重启VS Code的Pester Test Explorer,重新发现测试后即可正常运行。

方案3:手动运行单个测试文件

若仅需调试单个测试文件,可在当前PowerShell会话中先执行以下命令配置环境,再运行测试:

# 将构建输出目录和依赖目录加入模块搜索路径
$env:PSModulePath = (Resolve-Path ./output).Path + ';' + $env:PSModulePath
$env:PSModulePath = (Resolve-Path ./output/RequiredModules).Path + ';' + $env:PSModulePath
# 导入当前构建的最新版本模块
Import-Module xFailOverCluster -Force
# 运行指定测试文件
Invoke-Pester -Path ./tests/Unit/MSFT_xCluster.Tests.ps1

注意:每次修改模块源码后,都需要重新执行.\build.ps1 -Tasks build更新output目录下的模块文件,否则测试运行的仍然是旧版本代码。

内容的提问来源于stack exchange,提问作者Dennis

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 20:45:02