【发布时间】:2017-09-25 22:12:12
【问题描述】:
我目前正在使用phpseclib 允许我连接到 SSH。
我将大量使用 phpseclib 通过 SSH 连接到许多服务器并执行一些命令。
我创建了一个SecureShell 类(类似于适配器模式),其中包含一些方法,例如login() 和exec()。这些方法将通过 phpseclib 对象执行服务器。
我正在尝试找出测试登录并在服务器上执行命令的好方法 - 我应该模拟它SecureShell 类还是进行集成测试,这意味着我需要一个单独的真实测试服务器(不是本地开发服务器?)
【问题讨论】:
-
phpseclib 有单元测试并且它使用一个真实的测试服务器。使用 SSH 进行模拟的问题是......要真正完全模拟 SSH 的所有部分,您必须基本上构建一个 SSH 服务器,而这本身就是一个项目。
-
@neubert 我的意思是嘲笑
SecureShell在SecureShell构造函数中使用phpseclib(例如:$this->connection['ssh2'] = new SSH2($this->credential['host'], $this->credential['port']);我可能会研究真正的测试服务器,可能通过 vagrant 使用 vm。我需要找到一种在调用 phpunit 时超快速地重新创建 vm 测试服务器的方法。你有什么建议吗? -
就个人而言,我认为 Vagrant 将是最好的方法,因为它已经安装了 SSH。这是 phpseclib 作者对 Vagrant 所做的示例:github.com/phpseclib/phpseclib/issues/…
标签: php unit-testing phpunit phpseclib