python - 表现 BDD 测试 - 在测试结束时结束线程/节点
问题描述
我使用 threading 模块创建了一个客户端和服务器,它们在构建时在单独的线程上运行。
我正在尝试运行行为 BDD 测试,但在测试结束时我很难正确结束线程。
我目前的解决方案是
@given(u'Client and server are ran concurrently')
def step_imp(context):
client = cl.Client()
server= srv.Server()
server.start()
client.start()
# End client-server after some time
time.sleep(5)
server.terminate()
client.terminate()
@when(Something happens')
def step_imp(context):
#some code
@then(u'Something happens')
def step_imp(context):
#some code
理想情况下,我可以将最终客户端-服务器代码移动到它自己的然后阻塞,如下所示:
@then(u'The client-server dies after some time.')
def step_imp(context):
time.sleep(5)
server.terminate()
client.terminate()
但我发现这样做收效甚微。有什么建议吗?
解决方案
推荐阅读
- vim - Vim - 高亮 c# 区域
- javascript - 反应应用程序中的自定义firebase函数不返回值
- c++ - 如何计算给定数字出现在二叉树中的次数?
- mysql - 需要一个高效的sql查询
- php - 如何在php中评分
- java - 如何删除 char 数组中的空白位置?
- python - 创建 conda 环境后找不到命令“python”
- java - hasNextLine() 在 While 循环中总是返回 true
- java - 为什么我可以声明一个泛型数组但不能初始化它?
- c# - 如何在.net核心中手动抛出`DbUpdateConcurrencyException`?