发布新日志

  • phpunit-provider数据供给器使用问题记录

    2014-07-15 15:08:17

    使用phpunit做API自动化测试
    有几个API针对同一模块做增、删、改操作
    原设计方案:
    1、增加用例:增加前,把对应数据清理,即环境整理;
    2、修改用例:修改API,参数包含对应记录的ID,因为ID是变化的,所以调用函数获取ID,在provider中再使用;
    3、删除用例:删除API,参数为对应记录的ID,因为ID是变化的,所以调用函数获取ID,在provider中再使用;

    testsuite设计:
    <?xml version="1.0" encoding="UTF-8"?>
    <phpunit>
        <testsuite name="test">
            <file>AddTest.php</file>
            <file>EditTest.php</file>
            <file>DeleteTest.php</file>   
        </testsuite>
    </phpunit>
    但执行这个testsuite时,出现EditTest.php及DeleteTest.php找不到对应ID的情况;
    一个个分别执行,即先执行AddTest.php,再执行EditTest.php,后执行DeleteTest.php,都正常

    排查后发现,执行phpunit.xml前,会把所有用例的数据供给器,所需要的数据都先准备好,后再进行具体的用例执行操作;

    即:testsuite中,虽然顺序是:增-》改-》删,但会把这三个用例的数据供给器对应的数据都先准备好,因增加用例还未执行,所以改、删用例查询ID时,为空;所以出错。。。

    修改phpunit未能解决该问题!!

    目前处理方法:
    分成两个phpunit.xml
    phpunit -c phpunit1.xml(第一个:执行增加用例)
    phpunit -c phpunit2.xml(第二个:执行修改、删除用例)

    比较麻烦。。。
    先记录着,后续有发现其它方法再记录
    有谁遇到类似问题,或有更好的处理方法,也劳烦告知下哈!
  • phpunit-pear方式从3.7升级到4.0的问题

    2014-05-06 09:24:43



    执行phpunit时,提示如下信息:
    PHPUnit 4.0.17 by Sebastian Bergmann.

    You have installed PHPUnit via PEAR. This installation method is no longer
    supported and http://pear.phpunit.de/ will be shut down no later than
    December, 31 2014.

    Please read http://phpunit.de/manual/current/en/installation.html and
    learn how to use PHPUnit from a PHAR or install it via Composer.



    提示信息大意为:
    你通过pear方式安装的phpunit,这种安装方法将不再长久支持,而且http://pear.phpunit.de/将在2014-12-31后关闭。
    请阅读:http://phpunit.de/manual/current/en/installation.html,并学习如何通过phar使用phpunit,及通过Composer安装它。


    另外,原来phpunit的测试代码,会在头部引入TestCase.php
    require_once 'PHPUnit/Framework/TestCase.php';
    升级到4.0后,会出现错误提示如下:
    Fatal error: Call to undefined method PHPUnit_Util_Test::getOutputBufferingSettings() in D:\xampp\php\pear\PHPUnit\Framework\TestCase.php on line 536

    注释该require_once即可解决;

Open Toolbar