我想在多个平台上支持的命令行程序上执行集成测试。
例如,如果我正在编写mercurial插件并希望从顶层测试它,我该如何创建一个可在Windows,Linux和OS X上运行的测试套件?
或者,我是否应该编写使用代码中最高级函数的测试,并对最终程序执行基本的健全性检查?
答案 0 :(得分:3)
我们在Groovy或Python中编写类似这样的测试。由于Python和Groovy运行时在很大程度上与平台无关,因此您应该能够在所有三个OS上执行命令。每个平台可能需要更改一些参数,但您可以执行操作系统检查并在脚本开头设置这些参数。有些框架可以简化测试的运行,比如JUnit和Spock for Groovy和Robot for Python,但它们只是抽象了普通的框架。我开始很简单。尝试最简单的事情是敏捷的。
至于你的第二个问题,我可能会同时做这两件事。首先,我会开始为所有事情编写测试。然后,如果运行所有测试变得昂贵(比如说超过几分钟。我会将它们分成Smoke(理智)和功能(一切)测试并且不经常运行功能测试。
答案 1 :(得分:2)
Mercurial自己的测试套件是跨平台的,并且已经测试了许多Mercurial扩展。也许,只需添加更多测试。