gpt4 book ai didi

python - 使单元测试失败导致 Google Cloud 构建中的构建失败

转载 作者:行者123 更新时间:2023-12-03 21:44:53 25 4
gpt4 key购买 nike

我正在 Google Cloud Platform 上运行的 Python 项目上设置 CI/CD。代码部署工作正常,但我也为单独的功能创建了一些单元测试。这些单元测试位于几个不同的文件中,因此我创建了一个新文件,该文件包含所有这些单元测试并将它们添加到测试套件中。例如,我有一个名为 testFunction1.py 的文件如下:

from main import Function1

class TransformTests(unittest.TestCase):

def test_function(self):
# Test goes here


if __name__ == '__main__':
logging.getLogger().setLevel(logging.ERROR)
unittest.main()

然后我有一个名为 testFunction2.py 的类似文件用于不同的功能。
最后我有一个名为 executeTests.py 的文件如下:
import unittest

testmodules = [
'testFunction1',
'testFunction2'
]

suite = unittest.TestSuite()
loader = unittest.TestLoader()

for t in testmodules:
mod = __import__(t, globals(), locals(), ['suite'])
suite.addTests(loader.loadTestsFromModule(mod))

unittest.TextTestRunner().run(suite)
现在我正在运行这个文件来一次执行所有测试,这也很好用。我的问题是在 Google Cloud Build 中运行这个文件。我的 cloudbuild.yaml 文件的结构如下:
steps:
- name: "docker.io/library/python:3.7"
args: ["pip3", "install", "-t", "/workspace/lib", "-r", "requirements.txt"]
- name: "docker.io/library/python:3.7"
args: ["python3", "executeTests.py"]
env: ["PYTHONPATH=/workspace/lib"]
这工作正常,但如果测试失败,云构建仍然通过,这当然不是我想要的。
有谁知道我如何更改此设置,以便在测试失败时云构建失败?这也是一个简单的例子,在真正的 repo 中,我有大约 50 个测试文件,所以我不想将它们每个都添加到 cloudbuild.yaml 文件中。

最佳答案

如果返回代码为 0,则 Cloud Build 认为步骤 OK。如果不是,则构建失败。
因此,在您的测试代码中,执行 exit(1)当至少一项测试失败时。构建将停止。

关于python - 使单元测试失败导致 Google Cloud 构建中的构建失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65179288/

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