我一直在寻找是否有任何用于服务器的 BDD,在 Cucumber 或 Behat 方面是否有类似的东西?有一些语法糖的东西,例如:
Feature: jre
In order to use our monitoring software
As a UNIX user
I need to have JRE version at 8
Scenario:
Given I am in the directory "/usr/local/bin"
And I have a file named "java"
When I run "java -version"
Then I should get:
"""
java version "1.8.*"
"""
它不像 Cucumber 那样“纯文本”,但serverspec(基于 Ruby,基于 RSpec)和testinfra(Python)都提供了为您的机器编写规范以验证它们处于您想要的状态的能力。
顺便说一句,对您的基础设施进行测试非常重要,尽管不是“在每台机器上运行”,而是要验证您的配置管理是否符合您的预期。回归并不少见,并且知道对清单的更改并没有阻止机器被正确配置是非常令人放心的。
进行更改以阻止安装包是非常容易的. 因此,让您的基础设施测试套件与您的 CI 系统集成,在每次提交时进行增量和干净(从头开始)构建。然后,一旦机器建成,就在机器上挥动你的测试套件。这将验证您的配置管理仍然在做它应该做的一切。
我是testinfra的作者,这是一个用 python 编写基础设施测试的工具(基于pytest)。所有 testinfra 功能都可以通过 API 在 pytest 之外使用。
因此,如果您有一些 python 技能,您可以使用 pytest-bdd 插入 testinfra 或表现并实现行为驱动的基础设施。
注意:作为一个新用户,我不能发布超过 2 个链接(很棒的功能......)
Mark Burgess 对这一领域的研究做出了很多贡献:
http://markburgess.org/sysadmin.html
具体来说,看看他的工作支持的http://cfengine.com 。