1

我在 Visual Studio 2015 中创建了一个“Powershell 模块项目”,并为该模块编写了一些函数。当我对.psm1文件进行更改并尝试使用 Pester 框架(.test.ps1文件)对这些更改进行单元测试时,新更改不会在测试期间应用。这发生在 Visual Studio 2015 和 Visual Studio 2017 中。

我试过了:

  • “清洁解决方案”、“重建解决方案”和“构建解决方案”
  • “卸载项目”和“重新加载项目”
  • “关闭解决方案”和“打开解决方案”

到目前为止,我发现的唯一解决方案是重新打开 IDE。

这个问题可能来自哪里,还有其他解决方案吗?

4

1 回答 1

1

当您更改已加载的 PowerShell 模块时,这些更改不会自动应用于当前正在运行的 PowerShell 会话,因为该模块已加载到内存中(即使您手动运行Import-Module <modulename>,因为 PowerShell 看到该模块是已经加载并且什么都不做)。

解决方法是先使用Remove-Module然后用 重新加载它Import-Module,或者使用Import-Module <modulename> -Force.

您可以将这些解决方案中的任何一个添加到 Pester 测试文件的顶部,以确保它始终在测试之前重新加载模块。

于 2017-06-09T10:51:37.930 回答