我一直在寻找是否有任何BDD的服务器,这将是类似的黄瓜或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-based)和testinfra (Python) 都可以为你的机器编写规范来validation它们处于你想要的状态。
顺便说一句,testing你的基础设施是非常重要的,尽pipe不是“在每台机器上运行”,而是要validation你的configurationpipe理正在做你期望的。 回归并不罕见,并且知道对您的清单进行更改并没有阻止正确configuration机器,这是非常令人放心的。
令人惊讶的是,很容易做出一个改变,例如停止安装一个软件包,这是一个你永远不会发现的东西,除非你创build一个新的机器,而且软件包没有出现,尽pipe它在所有其他机器上。 因此,将您的基础架构testing套件与您的CI系统集成在一起,在每次提交时进行增量式和干净(从头开始)构build。 然后,在你的testing套件一旦build成之后,将它们放在机器上。 这将validation您的configurationpipe理仍在做它应该做的一切。
我是testinfra的作者, 这是一个用Python编写基础结构testing的工具(基于pytest )。 所有的testinfrafunction都可以通过API在pytest之外使用。
所以,如果你有一些python的技能,你可以用pytest-bdd插入testinfra,或者运行并实现行为驱动的基础结构。
NB:作为一个新用户,我不能发布更多的2个链接(真棒function…)
马克·伯吉斯(Mark Burgess)在这方面做了大量的研究:
http://markburgess.org/sysadmin.html
具体来说,看看他的工作支持http://cfengine.com 。