【发布时间】:2015-08-19 07:54:01
【问题描述】:
我的情况是这样的:
- 我有一个基于 windows 的服务器程序和一个基于 linux 的客户端。
- 我对在本地 linux 机器上运行和需要运行的 linux 客户端进行了许多测试
- 我需要从 windows 服务器机器上运行一些代码,它将一些消息发送到 linux 客户端。然后,应在 linux 客户端计算机上执行测试以验证这些消息的效果
所以一个典型的测试用例看起来像这样,在 windows 主机上运行:
test_example_message(self):
# has to be executed locally on windows server
send_message(EXAMPLE, hosts)
# has to be executed locally on linux clients
for host in hosts:
verify_message_effect(EXAMPLE, host)
我发现 pytest-xdist 能够以某种方式做到这一点。
我有什么好的教程或代码示例如何使用它?
【问题讨论】:
-
我目前找到的一些资源:xdist & django ;;; intro to py.test
-
另一个(捷克语):[horejsek.blog] (blog.horejsek.com/co-se-mi-libi-na-pytestu)
-
这看起来很恶心!我个人认为你应该在你的单元测试中模拟主机之间的通信,但如果你真的想这样做,你也可以使用
ssh <user_with_ssh_key>@<remotehost> python execute_verification.py在你的 linux 机器上简单地执行你的验证脚本,然后使用check_output捕获它的输出和验证 Windows 主机上的返回值。 -
@flazzarini 是的,我最终决定编写自己的“堆栈”,使用在多个线程/进程中执行的 ssh。 (在我的情况下,并行化至关重要)。经过一番研究,我发现无论如何我都需要用 xdist 来做这件事(即编写远程执行堆栈)。
-
好吧,你可以在这里回答你自己的问题。
标签: python linux windows pytest xdist