gpt4 book ai didi

powershell - 在哪里放置纠缠变量?

转载 作者:行者123 更新时间:2023-11-28 20:04:38 25 4
gpt4 key购买 nike

我最近开始使用 Pester 在 PowerShell 中编写测试,我在运行基本测试时没有遇到任何问题,但是我希望构建一些更复杂的测试,并且我正在为如何处理变量而苦苦挣扎需要测试。

我正在编写测试来验证一些云基础设施,因此在我们运行部署后,它会通过并验证它是否已正确部署并且一切都在应有的位置。因此,我们需要验证大量变量、VM 名称、网络名称、子网配置等。

在普通的 PowerShell 脚本中,这些变量将存储在脚本外部并作为参数输入,但这似乎不符合 Pester 或 BDD 的设计,我是否应该在测试中对这些变量进行硬编码?这似乎不是很直观,尤其是当我可能想将这些测试重新用于其他环境时。我确实尝试过将它们存储在外部 JSON 文件中并将其读入我的测试中,但即便如此我也需要在我的脚本中对 JSON 文件的路径进行硬编码。还是我做错了,有更好的方法?

最佳答案

我不知道我是否可以针对这类事情讨论最佳实践,但归根结底,Pester 脚本只是一个 Powershell 脚本,因此在测试中和测试周围的任何地方执行 powershell 都没有坏处(尽管请注意,某些构造具有自己的范围)。

我可能会在脚本顶部使用一个参数 block ,并根据以下建议通过 invoke-pester 的 -script 参数传递变量:http://wahlnetwork.com/2016/07/28/using-the-script-param-to-pass-parameters-into-pester-tests/

归根结底,纠缠测试(尤其是基础设施验证)的“最佳实践”定义非常松散/几乎不存在。

例如,我在我的 Active Directory 测试脚本中使用了一个参数 block ,它(部分)针对存储的配置文件进行测试,就像您描述的那样:

https://github.com/markwragg/Test-ActiveDirectory/blob/master/ActiveDirectory.tests.ps1

关于powershell - 在哪里放置纠缠变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42983377/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com