我正在尝试为 Bitbucket Cloud 设置集成 CI/CD,以帮助在云中自动执行从测试到生产的代码,并希望在 bitbucket 管道中运行一些测试用例,以获取 iseven() 函数的简单 python 代码,想要像这样实现它,如果这些测试用例中的任何一个失败,则不应将其推送意味着我将故意使该函数两次都返回 True,然后由于管道测试用例,不应将其推送到远程存储库上失败了。希望你能明白我想说的。
import unittest
def iseven(num):
# checking that if number is even return True
if num % 2 == 0:
return True
# checking that if number is not even return False
elif num % 2 !=0:
return False
class TestIsEvenMethod(unittest.TestCase):
def test_iseven1(self):
self.assertEqual(iseven(12),True)
def test_iseven2(self):
self.assertEqual(iseven(11),False)
if __name__ == '__main__':
unittest.main()
最佳答案
您需要将 CI/CD 流程分为两个连续的步骤
- 一个用于运行测试,另一个用于部署。如果测试步骤失败(即执行返回非零退出代码的命令),则整个管道将失败,从而阻止部署步骤执行。
您的 bitbucket-pipelines.yml
应类似于以下内容:
definitions:
steps:
- step: &test
script:
- pytest
- step: &deploy
script:
- docker build ...
- docker push ...
pipelines:
branches:
main:
- step: *test
- step: *deploy
关于python-3.x - 在 Bitbucket 管道中为 python 代码编写测试用例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70604197/