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 如何让企业微信机器人实现消息汇总整合
  • ¥50 关于#ui#的问题:做yolov8的ui界面出现的问题
  • ¥15 如何用Python爬取各高校教师公开的教育和工作经历
  • ¥15 TLE9879QXA40 电机驱动
  • ¥20 对于工程问题的非线性数学模型进行线性化
  • ¥15 Mirare PLUS 进行密钥认证?(详解)
  • ¥15 物体双站RCS和其组成阵列后的双站RCS关系验证
  • ¥20 想用ollama做一个自己的AI数据库
  • ¥15 关于qualoth编辑及缝合服装领子的问题解决方案探寻
  • ¥15 请问怎么才能复现这样的图呀