如何测试跨平台命令行客户端



我想在多个平台上支持的命令行程序上执行集成测试。

例如,如果我正在编写Mercurial插件并想从顶级进行测试,那么如何创建一个将在Windows,Linux和OS X上运行的测试套件?

另外,我是否应该只编写使用代码中最高级别功能并在最终程序上执行基本理智检查的测试?

我们在Groovy或Python中编写类似的测试。由于Python和Groovy Runtimes在很大程度上是独立的平台,因此您应该能够在所有三个操作系统上执行命令。每个平台可能必须更改一些参数,但是您可以进行操作系统检查并在脚本开始时设置这些参数。有一些框架简化了python的junit和spock等测试的运行,但它们只是抽象了正常的框架。我会开始简单。尝试可能有效的最简单的事情很敏捷。

关于您的第二个问题,我可能会同时做。首先,我将开始为所有内容编写测试。然后,如果运行所有测试变得昂贵(假设超过几分钟。我会将它们分成烟雾(理智)和功能性(所有内容)测试,并进行功能测试较少。

Mercurial自己的测试套件是跨平台,并且已经测试了许多Mercurial扩展。也许,只需在其中添加更多测试即可。

最新更新