Laravel 프로젝트의 빌드 상태 및 테스트 커버리지 배지 표시
온라인 도움말을 검색했지만 이 문제를 해결하기 위한 전체 가이드를 제공하는 어떤 것도 찾을 수 없었습니다. 대부분은 코드 적용 범위 측면을 무시하면서 빌드 상태에 대한 솔루션만 제공했습니다. 나는 이것을 알아 내야했고 시간이 부족했습니다.
아래는 제가 달성하고자 했던 것이며 이를 달성한 방법을 보여드릴 것입니다.
Travis CI 및 Coveralls로 레포 설정
아직 하지 않았다면 가장 먼저 해야 할 일은 Travis로 이동하여 GitHub 계정을 사용하여 로그인하는 것입니다. 로그인한 후 "새 저장소 추가"버튼을 눌러 저장소를 활성화하십시오. Coveralls.io에서 이 절차를 반복합니다.
PHPUnit 및 작업복 구성
다행스럽게도 Laravel은 PHPUnit과 함께 제공됩니다. 이 자습서에서는 일부 테스트를 이미 작성했다고 가정합니다. 그렇지 않은 경우 테스트 작성을 위해 Laravel 문서를 확인하는 것만큼 간단합니다.
Coveralls도 설치할 것입니다. Coveralls는 간단하게 요구함으로써 커버리지 보고서를 호스트하는 데 사용할 것입니다.
composer require php-coveralls/php-coveralls
또는 composer.json 파일의 require 블록에 다음 줄을 추가합니다.
"php-coveralls/php-coveralls": "^1.1"
이렇게 하면 composer.json 파일에 종속 항목으로 추가됩니다.
.travis.yml 및 .coveralls.yml 생성
이제 Laravel 프로젝트의 루트에 Travis 구성 파일(.travis.yml)을 생성하여 Travis CI를 설정합니다. 또한 clover.xml의 경로를 설정하는 데 사용되는 .coveralls.yml을 생성합니다.
내 .travis.yml은 다음과 같습니다. 언어, php 버전을 설정하고 실행할 추가 스크립트를 알려줍니다.
language: php
php:
- 7.3
- 7.4
os: linux
before_script:
- rm -rf composer.lock
- composer install
- cp .env.example .env
script:
- mkdir -p build/logs
- vendor/bin/phpunit -c phpunit.xml
after_success:
- travis_retry php vendor/bin/coveralls
# or enable logging
- travis_retry php vendor/bin/coveralls -v
내 .coveralls.yml은 다음과 같습니다. phpunit.xml이 빌드/로그 경로에 clover.xml을 저장한다고 가정합니다.
coverage_clover: build/logs/clover.xml
json_path: build/logs/coveralls-upload.json
service_name: travis-ci
의심의 여지가 없도록 내 phpunit.xml 및 .env.example 파일은 다음과 같습니다.
<?xml version="1.0" encoding="UTF-8"?>
<phpunit backupGlobals="false"
backupStaticAttributes="false"
bootstrap="vendor/autoload.php"
colors="true"
convertErrorsToExceptions="true"
convertNoticesToExceptions="true"
convertWarningsToExceptions="true"
processIsolation="false"
stopOnFailure="false">
<testsuites>
<testsuite name="Unit">
<directory suffix="Test.php">./tests/Unit</directory>
</testsuite>
<testsuite name="Feature">
<directory suffix="Test.php">./tests/Feature</directory>
</testsuite>
</testsuites>
<filter>
<whitelist processUncoveredFilesFromWhitelist="true">
<directory suffix=".php">./app</directory>
</whitelist>
</filter>
<logging>
<log type="coverage-html" target="tests/coverage" showUncoveredFiles="true" />
<log type="coverage-clover" target="build/logs/clover.xml"/>
</logging>
<php>
<env name="APP_ENV" value="testing"/>
<env name="DB_CONNECTION" value="sqlite"/>
<env name="BCRYPT_ROUNDS" value="4"/>
<env name="CACHE_DRIVER" value="array"/>
<env name="MAIL_DRIVER" value="array"/>
<env name="QUEUE_CONNECTION" value="sync"/>
<env name="SESSION_DRIVER" value="array"/>
</php>
</phpunit>
APP_NAME=Laravel
APP_ENV=local
APP_KEY=
APP_DEBUG=true
APP_URL=http://localhost
LOG_CHANNEL=stack
DB_CONNECTION=sqlite
DB_HOST=localhost
DB_PORT=3306
DB_DATABASE=:memory:
DB_USERNAME=homestead
DB_PASSWORD=secret
BROADCAST_DRIVER=log
CACHE_DRIVER=file
QUEUE_CONNECTION=sync
SESSION_DRIVER=file
SESSION_LIFETIME=120
REDIS_HOST=127.0.0.1
REDIS_PASSWORD=null
REDIS_PORT=6379
MAIL_DRIVER=smtp
MAIL_HOST=smtp.mailtrap.io
MAIL_PORT=2525
MAIL_USERNAME=null
MAIL_PASSWORD=null
MAIL_ENCRYPTION=null
PUSHER_APP_ID=
PUSHER_APP_KEY=
PUSHER_APP_SECRET=
PUSHER_APP_CLUSTER=mt1
MIX_PUSHER_APP_KEY="${PUSHER_APP_KEY}"
MIX_PUSHER_APP_CLUSTER="${PUSHER_APP_CLUSTER}"
코드 배포 및 배지 표시
다음은 readme.md 파일에서 사용한 두 배지의 코드입니다. Travis와 Coveralls 모두 이에 대한 삽입 링크를 제공합니다.
Travis CI 빌드 배지
[![Build Status](https://travis-ci.com/chyke007/credible.svg?branch=master)](https://travis-ci.com/chyke007/credible)
작업복 코드 커버리지 배지
[![Coverage Status](https://coveralls.io/repos/github/chyke007/credible/badge.svg?branch=master)](https://coveralls.io/github/chyke007/credible?branch=master)
이제 이 설정으로 코드를 GitHub에 푸시하면 Travis로 빌드를 보내고 Travis는 Coveralls로 커버리지를 보내야 합니다.
그게 전부입니다. 일반적으로 흥미진진한 모험이었습니다. 바라건대 이것이 누군가에게 가이드 역할을 하고 제가 갖고 싶었던 가이드가 되었으면 합니다!
Reference
이 문제에 관하여(Laravel 프로젝트의 빌드 상태 및 테스트 커버리지 배지 표시), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://dev.to/chyke007/display-build-status-and-test-coverage-badges-for-a-laravel-project-jg9
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
다행스럽게도 Laravel은 PHPUnit과 함께 제공됩니다. 이 자습서에서는 일부 테스트를 이미 작성했다고 가정합니다. 그렇지 않은 경우 테스트 작성을 위해 Laravel 문서를 확인하는 것만큼 간단합니다.
Coveralls도 설치할 것입니다. Coveralls는 간단하게 요구함으로써 커버리지 보고서를 호스트하는 데 사용할 것입니다.
composer require php-coveralls/php-coveralls
또는 composer.json 파일의 require 블록에 다음 줄을 추가합니다.
"php-coveralls/php-coveralls": "^1.1"
이렇게 하면 composer.json 파일에 종속 항목으로 추가됩니다.
.travis.yml 및 .coveralls.yml 생성
이제 Laravel 프로젝트의 루트에 Travis 구성 파일(.travis.yml)을 생성하여 Travis CI를 설정합니다. 또한 clover.xml의 경로를 설정하는 데 사용되는 .coveralls.yml을 생성합니다.
내 .travis.yml은 다음과 같습니다. 언어, php 버전을 설정하고 실행할 추가 스크립트를 알려줍니다.
language: php
php:
- 7.3
- 7.4
os: linux
before_script:
- rm -rf composer.lock
- composer install
- cp .env.example .env
script:
- mkdir -p build/logs
- vendor/bin/phpunit -c phpunit.xml
after_success:
- travis_retry php vendor/bin/coveralls
# or enable logging
- travis_retry php vendor/bin/coveralls -v
내 .coveralls.yml은 다음과 같습니다. phpunit.xml이 빌드/로그 경로에 clover.xml을 저장한다고 가정합니다.
coverage_clover: build/logs/clover.xml
json_path: build/logs/coveralls-upload.json
service_name: travis-ci
의심의 여지가 없도록 내 phpunit.xml 및 .env.example 파일은 다음과 같습니다.
<?xml version="1.0" encoding="UTF-8"?>
<phpunit backupGlobals="false"
backupStaticAttributes="false"
bootstrap="vendor/autoload.php"
colors="true"
convertErrorsToExceptions="true"
convertNoticesToExceptions="true"
convertWarningsToExceptions="true"
processIsolation="false"
stopOnFailure="false">
<testsuites>
<testsuite name="Unit">
<directory suffix="Test.php">./tests/Unit</directory>
</testsuite>
<testsuite name="Feature">
<directory suffix="Test.php">./tests/Feature</directory>
</testsuite>
</testsuites>
<filter>
<whitelist processUncoveredFilesFromWhitelist="true">
<directory suffix=".php">./app</directory>
</whitelist>
</filter>
<logging>
<log type="coverage-html" target="tests/coverage" showUncoveredFiles="true" />
<log type="coverage-clover" target="build/logs/clover.xml"/>
</logging>
<php>
<env name="APP_ENV" value="testing"/>
<env name="DB_CONNECTION" value="sqlite"/>
<env name="BCRYPT_ROUNDS" value="4"/>
<env name="CACHE_DRIVER" value="array"/>
<env name="MAIL_DRIVER" value="array"/>
<env name="QUEUE_CONNECTION" value="sync"/>
<env name="SESSION_DRIVER" value="array"/>
</php>
</phpunit>
APP_NAME=Laravel
APP_ENV=local
APP_KEY=
APP_DEBUG=true
APP_URL=http://localhost
LOG_CHANNEL=stack
DB_CONNECTION=sqlite
DB_HOST=localhost
DB_PORT=3306
DB_DATABASE=:memory:
DB_USERNAME=homestead
DB_PASSWORD=secret
BROADCAST_DRIVER=log
CACHE_DRIVER=file
QUEUE_CONNECTION=sync
SESSION_DRIVER=file
SESSION_LIFETIME=120
REDIS_HOST=127.0.0.1
REDIS_PASSWORD=null
REDIS_PORT=6379
MAIL_DRIVER=smtp
MAIL_HOST=smtp.mailtrap.io
MAIL_PORT=2525
MAIL_USERNAME=null
MAIL_PASSWORD=null
MAIL_ENCRYPTION=null
PUSHER_APP_ID=
PUSHER_APP_KEY=
PUSHER_APP_SECRET=
PUSHER_APP_CLUSTER=mt1
MIX_PUSHER_APP_KEY="${PUSHER_APP_KEY}"
MIX_PUSHER_APP_CLUSTER="${PUSHER_APP_CLUSTER}"
코드 배포 및 배지 표시
다음은 readme.md 파일에서 사용한 두 배지의 코드입니다. Travis와 Coveralls 모두 이에 대한 삽입 링크를 제공합니다.
Travis CI 빌드 배지
[![Build Status](https://travis-ci.com/chyke007/credible.svg?branch=master)](https://travis-ci.com/chyke007/credible)
작업복 코드 커버리지 배지
[![Coverage Status](https://coveralls.io/repos/github/chyke007/credible/badge.svg?branch=master)](https://coveralls.io/github/chyke007/credible?branch=master)
이제 이 설정으로 코드를 GitHub에 푸시하면 Travis로 빌드를 보내고 Travis는 Coveralls로 커버리지를 보내야 합니다.
그게 전부입니다. 일반적으로 흥미진진한 모험이었습니다. 바라건대 이것이 누군가에게 가이드 역할을 하고 제가 갖고 싶었던 가이드가 되었으면 합니다!
Reference
이 문제에 관하여(Laravel 프로젝트의 빌드 상태 및 테스트 커버리지 배지 표시), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://dev.to/chyke007/display-build-status-and-test-coverage-badges-for-a-laravel-project-jg9
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
language: php
php:
- 7.3
- 7.4
os: linux
before_script:
- rm -rf composer.lock
- composer install
- cp .env.example .env
script:
- mkdir -p build/logs
- vendor/bin/phpunit -c phpunit.xml
after_success:
- travis_retry php vendor/bin/coveralls
# or enable logging
- travis_retry php vendor/bin/coveralls -v
coverage_clover: build/logs/clover.xml
json_path: build/logs/coveralls-upload.json
service_name: travis-ci
<?xml version="1.0" encoding="UTF-8"?>
<phpunit backupGlobals="false"
backupStaticAttributes="false"
bootstrap="vendor/autoload.php"
colors="true"
convertErrorsToExceptions="true"
convertNoticesToExceptions="true"
convertWarningsToExceptions="true"
processIsolation="false"
stopOnFailure="false">
<testsuites>
<testsuite name="Unit">
<directory suffix="Test.php">./tests/Unit</directory>
</testsuite>
<testsuite name="Feature">
<directory suffix="Test.php">./tests/Feature</directory>
</testsuite>
</testsuites>
<filter>
<whitelist processUncoveredFilesFromWhitelist="true">
<directory suffix=".php">./app</directory>
</whitelist>
</filter>
<logging>
<log type="coverage-html" target="tests/coverage" showUncoveredFiles="true" />
<log type="coverage-clover" target="build/logs/clover.xml"/>
</logging>
<php>
<env name="APP_ENV" value="testing"/>
<env name="DB_CONNECTION" value="sqlite"/>
<env name="BCRYPT_ROUNDS" value="4"/>
<env name="CACHE_DRIVER" value="array"/>
<env name="MAIL_DRIVER" value="array"/>
<env name="QUEUE_CONNECTION" value="sync"/>
<env name="SESSION_DRIVER" value="array"/>
</php>
</phpunit>
APP_NAME=Laravel
APP_ENV=local
APP_KEY=
APP_DEBUG=true
APP_URL=http://localhost
LOG_CHANNEL=stack
DB_CONNECTION=sqlite
DB_HOST=localhost
DB_PORT=3306
DB_DATABASE=:memory:
DB_USERNAME=homestead
DB_PASSWORD=secret
BROADCAST_DRIVER=log
CACHE_DRIVER=file
QUEUE_CONNECTION=sync
SESSION_DRIVER=file
SESSION_LIFETIME=120
REDIS_HOST=127.0.0.1
REDIS_PASSWORD=null
REDIS_PORT=6379
MAIL_DRIVER=smtp
MAIL_HOST=smtp.mailtrap.io
MAIL_PORT=2525
MAIL_USERNAME=null
MAIL_PASSWORD=null
MAIL_ENCRYPTION=null
PUSHER_APP_ID=
PUSHER_APP_KEY=
PUSHER_APP_SECRET=
PUSHER_APP_CLUSTER=mt1
MIX_PUSHER_APP_KEY="${PUSHER_APP_KEY}"
MIX_PUSHER_APP_CLUSTER="${PUSHER_APP_CLUSTER}"
다음은 readme.md 파일에서 사용한 두 배지의 코드입니다. Travis와 Coveralls 모두 이에 대한 삽입 링크를 제공합니다.
Travis CI 빌드 배지
[![Build Status](https://travis-ci.com/chyke007/credible.svg?branch=master)](https://travis-ci.com/chyke007/credible)
작업복 코드 커버리지 배지
[![Coverage Status](https://coveralls.io/repos/github/chyke007/credible/badge.svg?branch=master)](https://coveralls.io/github/chyke007/credible?branch=master)
이제 이 설정으로 코드를 GitHub에 푸시하면 Travis로 빌드를 보내고 Travis는 Coveralls로 커버리지를 보내야 합니다.
그게 전부입니다. 일반적으로 흥미진진한 모험이었습니다. 바라건대 이것이 누군가에게 가이드 역할을 하고 제가 갖고 싶었던 가이드가 되었으면 합니다!
Reference
이 문제에 관하여(Laravel 프로젝트의 빌드 상태 및 테스트 커버리지 배지 표시), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/chyke007/display-build-status-and-test-coverage-badges-for-a-laravel-project-jg9텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)