使用chefspec测试厨房集成测试:使用依赖项测试cookbook

dojqjjoe  于 2021-06-07  发布在  Kafka
关注(0)|答案(1)|浏览(408)

我知道测试厨房遵循顺序
创建节点>converge cookbook>运行测试
创建一个假设有很强的外部依赖性的测试的最佳实践是什么?
Kafka食谱就是一个例子https://supermarket.chef.io/cookbooks/kafka. 您可能知道,kafka是一个依赖于zookeeper的消息代理应用程序,zookeeper是一个单独的应用程序,它是消息中心。
经过适当的关注点分离,Kafka食谱不包括zookeeper-它可以安装在同一台主机或不同的机器。
不过,为了验证kafka是否正常工作(即创建一条简单消息),您需要运行zookeeper服务器。
例如,测试可以在安装后运行这三个命令


# creates a message topic

bin/kafka-create-topic.sh --zookeeper localhost:2181 --replica 1 --partition 1 --topic test

# lists existing message topics

bin/kafka-list-topic.sh --zookeeper localhost:2181

# sends a message to this machine

bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test

使用chefspec,有没有一种方法来存根这个外部服务器localhost:2181 part 以上)?
谢谢您!

sz81bmfz

sz81bmfz1#

答案有两部分:第一部分chefspec用于单元测试,与测试厨房和集成测试无关。其次,您需要制定一个最小的测试配方来安装一个单节点zk服务器,并将其用于集成测试。通常你会把一本测试食谱放在下面 test/cookbook 然后用一个 path 来源。你可以用一本“真正的”zk食谱,也可以用一些更简单、更专注的东西。只是一个测试的极简主义的例子,看看我的mongodb食谱。在这种情况下,您可能可以对zk使用类似的方法。

相关问题