laradock workspace启用xdebug单元测试覆盖率分析

/ 1评 / 1

因为需要做单元测试覆盖率的分析,需要xdebug扩展,之前laradock创建worksapce时是没有安装xdebug的,所以需要重新安装。

修改laradock.env文件

WORKSPACE_INSTALL_XDEBUG=true

修改完后重新build

docker-compose build workspace

然后我的却没有build成功,报了个错

Err:1 http://ppa.launchpad.net/ondrej/php/ubuntu xenial/main amd64 php-xdebug amd64 2.6.0+2.5.5-1+ubuntu16.04.1+deb.sury.org+1
  404  Not Found
E: Failed to fetch http://ppa.launchpad.net/ondrej/php/ubuntu/pool/main/x/xdebug/php-xdebug_2.6.0+2.5.5-1+ubuntu16.04.1+deb.sury.org+1_amd64.deb  404  Not Found

E: Unable to fetch some archives, maybe run apt-get update or try with --fix-missing?
ERROR: Service 'workspace' failed to build: The command '/bin/sh -c if [ ${INSTALL_XDEBUG} = true ]; then     apt-get install -y php${LARADOCK_PHP_VERSION}-xdebug &&     sed -i 's/^;//g' /etc/php/${LARADOCK_PHP_VERSION}/cli/conf.d/20-xdebug.ini &&     echo "alias phpunit='php -dzend_extension=xdebug.so /var/www/vendor/bin/phpunit'" >> ~/.bashrc ;fi' returned a non-zero code: 100

这个问题是因为源失效了。
修改laradock/workspace/Dockerfile文件中261行原apt-get install -y php${LARADOCK_PHP_VERSION}-xdebug && \apt-get update && apt-get install -y php${LARADOCK_PHP_VERSION}-xdebug && \
以下是正确配置:

RUN if [ ${INSTALL_XDEBUG} = true ]; then \
    # Load the xdebug extension only with phpunit commands
    apt-get update && apt-get install -y php${LARADOCK_PHP_VERSION}-xdebug && \
    sed -i 's/^;//g' /etc/php/${LARADOCK_PHP_VERSION}/cli/conf.d/20-xdebug.ini && \
    echo "alias phpunit='php -dzend_extension=xdebug.so /var/www/vendor/bin/phpunit'" >> ~/.bashrc \
;fi

更多信息可以关注laradockissueissue#1847

改完以后就能成功创建了。
然后重启容器 docker-compose up -d workspace,进入workspace容器通过php -m | grep xdebug能看到xdenug正常安装了。

通过phpunit --coverage-html ./tests/codeCoverage输出单元测试覆盖率的分析结构,可以通过浏览器打开查看,也可以自行修改./tests/codeCoverage结果输出目录。

一条回应:“laradock workspace启用xdebug单元测试覆盖率分析”

  1. summer说道:

    好文章,学习了

发表评论

电子邮件地址不会被公开。 必填项已用*标注