gpt4 book ai didi

python - 从 Windows 主机在远程 Linux 机器上运行部分 Python 单元测试

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:50:25 27 4
gpt4 key购买 nike

我的情况是这样的:

  • 我有一个基于 windows 的服务器程序和一个基于 linux 的客户端。
  • 我对在本地 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 以某种方式能够做到这一点。

关于如何使用它有什么好的教程或代码示例吗?

最佳答案

我的最终设计使用 ssh 和多处理而不是 xdist(在 execute_tc() 函数中):

import multiprocessing
import test_functions

def test_example_message(self):
"""Example test case"""
# to get IPs, usernames, passwords, other required data
config = get_test_config('example_message')
# will take care of threading and executing parts
result_dict = execute_tc(config)
# to fail or not to fail. take care of proper reporting
process_results(result_dict)

def execute_tc(config):
"""Execute test code in parallel"""
# create shared results dictionary
manager = multiprocessing.Manager()
result_dict = manager.dict({})
# create processes
processes = []
for func, platform, args in config:
function = getattr(test_functions, func)
worker = multiprocessing.Process(target=function, args=[result_dict, platform, args])
worker.daemon = True
worker.start()
processes.append(worker)

for process in processes:
process.join()

return result_dict

关于python - 从 Windows 主机在远程 Linux 机器上运行部分 Python 单元测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32089605/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com