每次推动后,使用github操作执行您的PHP测试
#php #symfony #ci #phpunit

我一直在开发自己的Symfony捆绑包,我想与您分享如何驾驶Continuos集成以执行我的单元测试。
为了测试目的

这篇文章涉及一种简单的驾驶测试和连续集成方式,但我认为它可以作为更高级配置的基础。

添加测试

从您的项目root中,使用作曲家安装phpunit,如下所示:

   composer require --dev symfony/test-pack

安装Phpunit后,您已经可以在 tests/目录下编写测试,该目录将在Phpunit安装后自动创建。

编写测试后,我们准备使用GitHub操作,以便每次推动都执行测试。

1.-创建连续集成文件

首先,您必须在根目录下创建目录 .github/workflows 。然后,创建一个带有您选择的名称的YAML文件,我们将在其中设置持续的集成配置。

2.-将内容添加到Continuos集成文件

让我向您展示我的CI文件的样子:

name: CI

on: [push]

jobs:
  build-test:
    runs-on: ubuntu-latest

    steps:
      - uses: actions/checkout@v3
      - run: echo "The ${{ github.repository }} repository has been cloned to the runner."
      - uses: php-actions/composer@v6
      - run: echo "Composer dependencies have been installed"
      - run: vendor/bin/phpunit

让我们按行描述IT:

  • 名称:标识管道名称(作为管道,我们了解我们要执行的所有工作)

  • on :将触发管道的事件(在我的情况下,在每次推动下)

  • 作业:作业我们将执行。每个作业都包含一个或多个步骤。如我们所见,Mi CI文件执行一个名为 build-test

  • 的作业
  • 运行:指定工作将运行的操作系统。就我而言,最新的Ubuntu版本

  • 步骤:列出以下执行的所有步骤

现在,让我们描述每个步骤:

结帐存储库

此步骤结帐代码来自存储库。为此,它使用预定义的操作“ action/neckout@v3 ”,因此我们尚未运行任何git命令。

结帐后,我们使用 echo linux命令显示一条消息。变量 github.repository 是一个可用的var,可容纳存储库名。要使用它,我们必须像在文件字符串中看到的那样格式化它。

安装作曲家依赖项

现在,我们要在执行测试之前安装作曲家依赖项,否则将不可用。正如我们在第一步中所做的那样,我们使用预定义的动作“ php-actions/composer@v6 ”,为我们完成了工作。

作曲家完成后,我们显示一条消息,该消息告知作曲家依赖项已安装。

运行测试

现在安装了作曲家依赖项,我们准备运行Phpunit测试。为此,我们只需要告诉CI文件即可使用运行:供应商/bin/phpunit

可视化管道

推出代码后,我们可以登录到我们的github帐户,转到我们的存储库,然后单击“操作”选项卡。

Repository actions list

如果我们单击执行的最后一个管道,我们将看到所有步骤已成功执行。

Repository pipeline steps

最后,如果我们单击phpunit步骤,我们将看到步骤日志,并且测试已成功传递。

Github phpunit step

正如您所能看到的,我们已经构建了一个简单的管道(Github将其称为工作流程),在每次推动下,执行单元测试以确保代码一致性。

您可以在my github上看到整个代码: