首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >把Pester变量放哪里?

把Pester变量放哪里?
EN

Stack Overflow用户
提问于 2017-03-23 17:47:09
回答 2查看 2.1K关注 0票数 2

最近,我开始使用Pester用PowerShell编写测试,运行基本测试没有问题,但是我希望构建一些更复杂的测试,并且我很难处理测试所需的变量。

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

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

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-03-23 18:09:42

我不知道我是否能为这类事情提供最佳实践,但最终,Pester脚本只是一个Powershell脚本,所以在测试的任何地方执行powershell都没有坏处(尽管要注意一些构造有自己的作用域)。

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

最后,纠缠测试(特别是基础设施验证)的“最佳实践”定义非常松散/根本不存在。

例如,我在Active测试脚本中使用了param块,它(部分地)测试存储的配置文件,正如您所描述的:

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

票数 4
EN

Stack Overflow用户

发布于 2022-09-30 04:49:45

正如所描述的here,您可以添加BeforeAll块来定义变量

代码语言:javascript
复制
Describe "Check name" {
  BeforeAll {
    $name = "foo"
  }
  It "should have the correct value" {
    $name | Should -Be "foo"
  }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42983377

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档