如果在 PSPester 脚本的 Describe
block 中声明变量,并且在 It
block 中使用该变量,则 PSScriptAnalyzer 无法识别该变量的用法多变的。
我必须如何声明变量才能消除警告,或者我必须如何将 PSUseDeclaredVarsMoreThanAssignment
规则的 Diagnostics.CodeAnalysis.SuppressMessage
应用到抑制该单一声明的警告?
最佳答案
另一个解决方法是将这两个变量分配给脚本范围。
看起来 PSScriptAnalyzer 试图变得聪明,并将花括号视为子范围。因此,$foo
变量不在 BeforeEach
作用域中使用,但在 It
作用域中虽然未赋值,但仍被使用。
EX: $script:foo
does not result in a linting error .
实际的解决方案是帮助 vscode-powershell 扩展开发。但这可能会更困难。
关于powershell - 使用 PSUseDeclaredVarsMoreThanAssignment 进行纠缠测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47438850/