gpt4 book ai didi

boto3 - 如何在完成 Boto3 单元测试之前等待 CodeBuild 项目完成构建?

转载 作者:行者123 更新时间:2023-12-02 03:24:42 25 4
gpt4 key购买 nike

在为 CodeBuild 编写 Python Boto3 单元测试时,是否可以先 start_build() 然后 wait() 等待构建完成,然后再评估我的测试是否通过?通常,我只使用服务员,但据我所知,CodeBuild 没有任何服务员(我执行了 client.waiter_names 并得到了一个空数组,并且 Boto3 文档没有列出 CodeBuild 客户端的任何服务员)。

我找到了this (duplicate) question ,但答案并没有解决如何实际解决等待问题 - 它只是说明如何检查构建的状态。如果我能以某种方式 wait() 直到状态更改为某个值,那将很有用。

最佳答案

我最终没有找到一个好的解决方案,所以我只是做了一个循环来轮询状态直到完成。

      client = boto3.client(service_name='codebuild', region_name='us-east-1')
new_build = client.start_build(projectName='fooProject')
buildId = new_build['build']['id']

buildSucceeded = False

counter = 0
while counter < 10: #capped this, so it just fails if it takes too long
time.sleep(5)
counter = counter + 1
theBuild = client.batch_get_builds(ids=[buildId])
buildStatus = theBuild['builds'][0]['buildStatus']

if buildStatus == 'SUCCEEDED':
buildSucceeded = True
break
elif buildStatus == 'FAILED' or buildStatus == 'FAULT' or buildStatus == 'STOPPED' or buildStatus == 'TIMED_OUT':
break

self.assertTrue(buildSucceeded)

关于boto3 - 如何在完成 Boto3 单元测试之前等待 CodeBuild 项目完成构建?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53733423/

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