奇怪的“空测试套件”。在Docker中运行PHPUnit测试时输出

时间:2019-06-13 20:22:58

标签: php docker docker-compose phpunit phpstorm

我已经使用Redis,MySQL,php-fpm和Nginx Web服务器设置了docker-compose环境。这是docker-compose.yml的相关部分:

webserver:
      image: nginx:alpine
      container_name: webserver
      working_dir: /application
      volumes:
          - .:/application
          - ./phpdocker/webserver/nginx.conf:/etc/nginx/conf.d/default.conf
      ports:
       - "8082:80"

php-fpm:
      build: phpdocker/php-fpm
      container_name: php-fpm
      working_dir: /application
      volumes:
        - .:/application
        - ./phpdocker/php-fpm/php-ini-overrides.ini:/etc/php/7.3/fpm/conf.d/99-overrides.ini

这是引用的php-fpm构建的结构:

FROM phpdockerio/php73-fpm:latest
WORKDIR "/application"

# Fix debconf warnings upon build
ARG DEBIAN_FRONTEND=noninteractive

# Install selected extensions and other stuff
RUN apt-get update \
    && apt-get -y --no-install-recommends install  php7.3-mysql php-redis php-xdebug \
    && apt-get clean; rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* /usr/share/doc/*

# Install git
RUN apt-get update \
    && apt-get -y install git \
    && apt-get clean; rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* /usr/share/doc/*

您可能会认识到结构或默认值;我用phpdocker生成了它。

我的容器都构建良好,因此下一步是设置PHPStorm以从php-fpm Docker容器中运行测试。我已经正确设置了远程解释器和PHPUnit路径,运行了一个基本测试,并得到以下(bizarre)输出:

docker-compose://[/Users/christian/projects/application/docker-compose.yml]:php-fpm/php /application/src/app/vendor/bin/phpunit --configuration /application/phpunit.xml --filter "/(::testPagesReturnExpectedStatus)( .*)?$/" Tests\Smoke\SmokeTest /application/tests/php/Smoke/SmokeTest.php --teamcity
Starting application__phpstorm_helpers_1 ... 
Recreating php-fpm            ... 
Attaching to php-fpm
php-fpm    | PHPUnit 7.4.3 by Sebastian Bergmann and contributors.
php-fpm    | 
php-fpm    | Runtime:       PHP 7.3.6-1+ubuntu18.04.1+deb.sury.org+1 with Xdebug 2.7.1
php-fpm    | Configuration: /application/phpunit.xml
php-fpm    | 
php-fpm    | 
php-fpm    | 
php-fpm    | fivefour-php-fpm    | 
php-fpm    | Empty test suite.
php-fpm    | 
php-fpm    | 
php-fpm    | Time: 1.59 seconds, Memory: 6.00 MB
php-fpm    | 
php-fpm    | 
php-fpm    | ERRORS!
php-fpm    | Tests: 9, Assertions: 0, Errors: 1.
php-fpm exited with code 2
Aborting on container exit...

Process finished with exit code 2

我马上注意到两件事:通常,当测试中有错误时,PHPUnit将输出这些错误。在这里,我什么也没得到。其次,我收到一条消息,提示“ Empty test suite。”,尽管实际上排了几行,但还是打印了“ Tests:9,Assertions:0,Errors:1`”,这似乎不是一个空测试。适合我。

简而言之,我绝对不知道发生了什么,甚至不知道如何解决它!如果有人有什么见识,我将不胜感激。

1 个答案:

答案 0 :(得分:1)

我通过设置Docker映像以允许SSH访问来“解决”此问题,然后使用PHPStorm的SSH远程解释器而不是docker远程解释器。我不愿接受我的解决方案作为真正的答案,因为它更多是一种解决方法,但我将其留在这里供后代/将来的Google员工使用。