dongxuan2015 2018-01-30 15:48
浏览 141
已采纳

如何对PHP REST API进行单元测试?

I mean I know I can write PHPUnit tests,
but how to mock web server / mysql server?

I'd also like to test MySQL / database code.
Best would be something suitable for Travis CI.

  • 写回答

1条回答 默认 最新

  • dongzhukuai8177 2018-01-30 15:57
    关注

    I like using codeception for my acceptance tests, but regardless, the travis setup is pretty much the same. Install a selenium server!

    language: php
    
    php:
      - 5.6
      - 7.0
      - 7.1
      - hhvm
    
    matrix:
      allow_failures:
        - php: hhvm
    
    addons:
      hosts:
        - FAKEHOSTNAMEHERE
    
    sudo: false
    
    
    install:
      - wget http://selenium-release.storage.googleapis.com/2.42/selenium-server-standalone-2.42.2.jar
      - composer install
    
    
    before_script:
      - export DISPLAY=:99.0
      - sh -e /etc/init.d/xvfb start
      - sleep 5
      - java -jar selenium-server-standalone-2.42.2.jar -port 4444 &
      - "mysql -e 'create database codeception_test;'"
      - nohup php -S FAKEHOSTNAMEHERE:8000 public/index.php &
    script:
      - php vendor/bin/codecept run  --coverage-xml --env travis
    after_script:
      - phpunit --coverage-clover=coverage.clover
      - wget https://scrutinizer-ci.com/ocular.phar
      - php ocular.phar code-coverage:upload --format=php-clover tests/_output/coverage.xml
    

    Just replace the FAKEHOSTNAMEHERE with whatever you need.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 对于相关问题的求解与代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 信号傅里叶变换在matlab上遇到的小问题请求帮助
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料
  • ¥15 使用R语言marginaleffects包进行边际效应图绘制