我有一组命令行应用程序,其测试我想自动化。这是用于测试IaaS云设置,因此测试将调用启动新的虚拟机实例(例如euca-run-instances),然后确保它们可以通过ssh登录,甚至在远程计算机上运行一些简单的应用程序。
是否有任何旨在进行此类测试的框架?我知道有一些框架可以让它更容易运行单元测试,我知道像(p)期望与ssh这样的东西进行交互,但我不知道生活在这两个世界的交叉点的工具。 / p>
答案 0 :(得分:2)
您需要调用的所有内容都是面向命令行的吗?再看看bash。我担心没有图书馆可以使它比现在更普遍。
您甚至可以进行远程测试:
$ ssh user@server /bin/false ; echo $?
1
$ ssh user@server /bin/true ; echo $?
0
这意味着您可以编写脚本,将其上载到服务器上,远程执行并使用退出代码来确定成功(0)或失败(1)。
当然,这并不能解决您的所有问题。确切的测试策略取决于您的情况。拆分你的工作,让你的生活更轻松。
看看shunit并省去编写自己的单元测试框架的麻烦。我不能真正扩展shunit。我在编写自己的工具后发现了它。
答案 1 :(得分:1)
我使用pexpect和pyhton的unittest测试将LDAP系统集成到客户端服务器中取得了一些成功。
我们围绕pexepect的孩子pxssh写了一个包装类,它明确地围绕着ssh handeling。我们将函数编写到pxssh类中,它不仅可以捕获输出,还会返回$的值?命令结束后。
当我们进行单元测试时,这给了我们灵活性。然后可以编写测试,以便我们可以测试输出条件甚至是返回值。
我们能够进行单元测试:
作为这项工作的后果,我们调整了pxssh类来重新ip /解析1000多个linux主机,这使得我们的构建移动更容易。对不起,我不能分享更多的代码细节,因为工作拥有它(虽然我希望让他们发布它)
答案 2 :(得分:0)
这是我的提示: 您可以使用中央主机并使用ssh密钥文件授权运行“ssh user @ host cmd” 因此,您可以更轻松地控制您的许多主机。
答案 3 :(得分:0)
Cram似乎有这个功能。
答案 4 :(得分:0)