CircleCI在步骤数之后开始并行运行步骤

时间:2018-11-13 11:22:44

标签: phpunit circleci circleci-2.0

我的CirleCI工作流程有一个config.yaml

我使用PHPUnit运行测试,但我想开始使用Circle并行运行这些测试,以加快部署过程。

所以BuildJob看起来像这样:

jobs:
  #  build-job
  build-job:
    <<: *defaults  
    resource_class: large
    steps:
      - checkout
      - run: sudo apt install -y libsqlite3-dev zlib1g-dev libpng-dev libxml2-dev
      - run: sudo docker-php-ext-install zip
      - run: sudo docker-php-ext-install gd
      - run: sudo docker-php-ext-install soap
      - run: sudo docker-php-ext-install bcmath
      - run: sudo composer self-update
      - restore_cache:
          keys:
            - composer-v1-{{ checksum "composer.lock" }}
            - composer-v1-
      - run: composer install -n --prefer-dist
      - save_cache:
          key: composer-v1-{{ checksum "composer.lock" }}
          paths:
            - vendor
      - restore_cache:
          keys:
            - node-v1-{{ checksum "package.json" }}
            - node-v1-
      - run: 
          name: Create sqlite db
          command: touch database/database.sqlite
      - run: 
          name: Run tests
          command: ./vendor/bin/phpunit -d memory_limit=512M
      - persist_to_workspace:
          root: ~/laravel
          paths: .

所以我知道我需要在parallelism: 4之前添加Run tests,以便并行运行它们,如记录的here所示,但是我需要依次进行直至SomeService.someMethodverifyEmail()的步骤。然后,我将有多个运行测试步骤来命中每个测试文件夹。

反正有实现这一目标的方法吗?

1 个答案:

答案 0 :(得分:1)

根据此讨论(https://discuss.circleci.com/t/how-to-execute-phpunit-tests-in-parallel/25622),使用CircleCI CLI命令circleci tests split为并行容器拆分测试的常用方法不适用于phpunit。但是,正如@matfax所说,您可以在几个逻辑组中运行测试吗?像

./vendor/bin/phpunit tests/ThisGroup
./vendor/bin/phpunit tests/ThatGroup

如果是这样,那么您可以在CircleCI工作流程中的并行作业中运行每个命令。