Трубопроводы Bitbucket с образом докера с использованием Laravel - PullRequest
0 голосов
/ 15 октября 2019

Я хочу выполнить непрерывную интеграцию, используя Bitbucket Pipelines, чтобы построить мой проект. Сначала я использовал файл bitbucket-pipeline.yml с конфигурацией по умолчанию, как показано ниже:

image: php:7.1.29
pipelines:
default:


- step:
    caches:
      - composer
    script:
      - apt-get update && apt-get install -y unzip
      - curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer
      - composer install
      - vendor/bin/phpunit

После фиксации и запуска теста он не прошел.

Я изменил указанную выше конфигурацию с помощью приведенной нижедля проверки базы данных:

image: phpunit/phpunit:6.5.3

pipelines:
default:
- step:
  caches:
  - composer
  script:
  - apk add --no-cache php7-gd php7-xmlwriter
  - php -r "file_exists('.env') || copy('.env.testing', '.env');"
  - composer install
  - php artisan key:generate
  - php artisan migrate --seed
  - vendor/bin/phpunitenter 

Но когда я попытался запустить ее снова, она не удалась. У меня сейчас 8 неудачных сборок. Кто-нибудь может помочь выполнить успешную сборку?

Ответы [ 3 ]

0 голосов
/ 23 октября 2019

одна вещь, которую вы обязательно можете проверить, хотя это не имеет значения, это отступ вашего файла. Во-вторых, не могли бы вы опубликовать ошибку или логи? Было бы легче помочь понять, в чем проблема, если бы мы смогли увидеть точную ошибку, которая происходит.

0 голосов
/ 24 октября 2019

Здесь сборка не удалась .

Проблема была в композиторе. Композитор был успешно установлен, но не запустился, как показано в приведенных ниже данных:

+ curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin -- 
filename=composer
All settings correct for using Composer
Downloading...
Composer (version 1.9.0) successfully installed to: /usr/local/bin/composer
Use it: php /usr/local/bin/composer

+ composer install
Do not run Composer as root/super user! See https://getcomposer.org/root for details
Loading composer repositories with package information
Installing dependencies (including require-dev) from lock file
Your requirements could not be resolved to an installable set of packages. 

Problem 1
- This package requires php ^7.2 but your PHP version (7.1.29) does not satisfy that 
requirement.

Problem 2
- Installation request for moontoast/math 1.1.2 -> satisfiable by 
moontoast/math[1.1.2].
- moontoast/math 1.1.2 requires ext-bcmath * -> the requested PHP extension bcmath is 
missing from your system.

Problem 3
- Installation request for sebastian/type 1.1.3 -> satisfiable by 
sebastian/type[1.1.3].
- sebastian/type 1.1.3 requires php ^7.2 -> your PHP version (7.1.29) does not 
satisfy that requirement.

Problem 4
- doctrine/lexer 1.1.0 requires php ^7.2 -> your PHP version (7.1.29) does not 
satisfy that requirement.
- doctrine/lexer 1.1.0 requires php ^7.2 -> your PHP version (7.1.29) does not 
satisfy that requirement.
- Installation request for doctrine/lexer 1.1.0 -> satisfiable by 
doctrine/lexer[1.1.0].

enter image description here

Теперь сборка прошла успешно, когда был удален мой предыдущийзакодируйте и проверьте строку «Hello word».

, как показано ниже:

echo "Hello world!"
<1s 
Build teardown
<1s
Searching for test report files in directories named [test-results, failsafe-reports, 
test-reports, surefire-reports] down to a depth of 4
Finished scanning for test reports. Found 0 test report files.
Merged test suites, total number tests is 0, with 0 failures and 0 errors.

enter image description here

0 голосов
/ 21 октября 2019

Тестирование базы данных или любого другого стороннего приложения должно быть выполнено с использованием интеграционного теста, а не модульного теста, если вы пытаетесь проверить базу данных с модульным тестом с ошибкой, потому что вы не устанавливаете правильное соединение перед запускомтест, который должен быть выполнен только с интеграционным тестом.

Также обязательно вызовите bin / phpunit в правильном каталоге, вам нужно перейти в основной тестовый каталог в laravel и затем выполнить ../vendor/bin/phpunit Unit.

...