>

Bitbucket을 사용하여 테스트 스위트를 자동으로 실행하도록 파이프 라인을 설정하려고합니다.

불행히도 저는 Docker와 파이프 라인에 완전히 익숙하지 않습니다. 이 기사 를 읽은 후시험 및 오류bitbucket-pipelines.yml 를 생각해 냈습니다.  구성 :

image: php:7.2.17
pipelines:
  default:
    - step:
        caches:
          - composer
        script:
          - apt-get update && apt-get install -y unzip zlib1g-dev sqlite3 libsqlite3-dev
          - docker-php-ext-install zip && docker-php-ext-install pdo_sqlite && docker-php-ext-install pdo_mysql
          - curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer
          - composer install
          - vendor/bin/simple-phpunit

문제는이 구성에 여전히 오류가 표시된다는 것입니다.

 [RuntimeException]                                                               
  An error occurred when executing the "'cache:clear --no-warmup'" command:        


  In ConnectionFactory.php line 79:                                                
    An exception occured while establishing a connection to figure out your pla    
    tform version.                                                                 
    You can circumvent this by setting a 'server_version' configuration value      
    For further information have a look at:                                        
    https://github.com/doctrine/DoctrineBundle/issues/673                          

  In AbstractMySQLDriver.php line 93:                                              
    An exception occurred in driver: SQLSTATE[HY000] [2002] Connection refused     

  In PDOConnection.php line 31:                                                    
    SQLSTATE[HY000] [2002] Connection refused                                      

  In PDOConnection.php line 27:                                                    
    SQLSTATE[HY000] [2002] Connection refused

MySQL을 사용하여 연결하려고하는 이유는 무엇입니까? 테스트 만 실행해서는 안됩니까? 프로젝트 실행 또는 배포 가능한 버전이 필요하지 않으며 SQLite 및 단위 테스트를 사용하여 테스트 스위트를 실행하면됩니다.

  • 답변 # 1

    교리는 MySQL/PostgreSQL 버전을 추측하려고합니다. 따라서 어댑터를 만들 때 데이터베이스에 연결하려고합니다.

    이 구성은 구성에서 구체적 버전을 구성하여 회피 할 수 있습니다.

    # config.yaml
    doctrine:
      dbal:
        # [..]
        server_version: '5.7' # or mariadb-<version> for MariaDB
    
    

    이 "문제"에 대한 자세한 정보는 Doctrine DBAL 구성 문서의 구성 개요 아래에있는 알림에서 확인할 수 있습니다.

    server_version 만 추가   config_test.yaml 로  문제를 해결하려면

  • 답변 # 2

    이 예를 참조하십시오 :

    # This is a sample build configuration for PHP.
    # Check our guides at https://confluence.atlassian.com/x/e8YWN for more examples.
    # Only use spaces to indent your .yml configuration.
    # -----
    # You can specify a custom docker image from Docker Hub as your build environment.
    image: medtrainermx/php:5.6
    pipelines:
      branches:
        '**':
          - step:
              name: "Build"
              caches:
                - composer
              script:
                - cp symfony/app/config/local.yml.dist symfony/app/config/local.yml
                - cp symfony/tests/config.local.php.dist symfony/tests/config.local.php
                - cd symfony/tests
                - composer install
              artifacts:
                - build/**
                - symfony/vendor/**
                - symfony/app/config/local.yml
                - symfony/app/cache/**
                - symfony/tests/vendor/**
                - symfony/tests/config.local.php
          - step:
              name: "Coding Standards"
              caches:
                - composer
              script:
                - cd symfony
                - mkdir app/cache
                - ./bin/phpcs --cache=app/cache/.phpcs-cache
          - step:
              name: "Unit Tests"
              services:
                - mysql
              caches:
                - composer
              script:
                - cd symfony
                - ./bin/phpunit --testsuite=unit --debug
    definitions:
      services:
        mysql:
          image: mysql:5.7
          environment:
            MYSQL_DATABASE: 'test'
            MYSQL_ROOT_PASSWORD: 'password'
    
    

    이 구성에서는 비트 버킷 파이프 라인에서 사용하기 위해 내 이미지를 사용합니다

관련 자료

  • 이전 다른 파일에서 CSS 클래스를 사용하는 방법은 무엇입니까?
  • 다음 javascript - 중첩 테이블을 필터링하는 방법을 알고 싶습니까?