python-3.x - 在 Bitbucket 管道中为 python 代码编写测试用例

标签 python-3.x bitbucket-pipelines testcase

我正在尝试为 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/

相关文章:

python - python 中的 2 元组求和

python-3.x - 如何将我的 Bitbucket Pipeline Repo 变量添加到我的本地 Docker 构建中?

java - 哪个工具用于识别该方法是否有测试用例?

java - 无法在 Rally 中将测试结果添加到某些测试用例中

mysql - 使用python中的线程在Mysql上同时运行多个查询

Python 字符串中不一致的特殊字符存储

symfony - 在管道中编辑 env 文件

c# - 改进大量测试用例的测试语法

python - Selenium 超时异常 python

管道成功完成后的 Bitbucket webhook 触发器