ThinkPHP网站用Phpunit 测试
来源:互联网 发布:linux 下的虚拟机 编辑:程序博客网 时间:2024/05/22 06:14
本文网址http://write.blog.csdn.net/postedit
使用phpunit 工具测试框架程序,最重要的是要在测试环境中模拟框架环境
比如 配置文件,加载模块,session,cookie 等等,如果没有特别需求,尽量用thinkphp 系统加载所有环境, 1、测试工具包 一个专门测试thinkphp 的封装工具,在编写测试代码时把工具包加载到测试文件中工具包:有两部分组成:核心包Library,项目包:Thinkphp项目名称。 核心包Library 主要由以下文件组成#测试控制器Action 的基类,所有测试action 的case 都必须继承此类BaseActionTest.php#测试页面(Html)的基类,所有测试Html的case 都必须继承此类BaseHtmlTest.php#测试业务(Service)的基类,所有测试Service的case 都必须继承此类BaseModelTest.php# 测试控制器工具类Controller.phpHttpWebRequest2.phpHttpWebRequest.phpIHttpWebRequest.php#测试控制器时设置session 文件Setsession.php# Thinkphp 项目入口文件TPConfig.php 项目包 主要由以下文件组成#测试控制器文件目录Action#测试页面文件目录Html#测试业务文件目录Service#测试控制器文件时必须加载的初始化文件ActionInit.php#测试页面文件时必须加载的初始化文件HtmlInit.php#测试业务文件时必须加载的初始化文件ServiceInit.php#测试项目的配置文件Config.php 2、修改Thinkphp代码1、打开ThinkPHP/Lib/Core/App.class.php 文件,此处修改,主要是为了测试model 类,找到App::exec()。修改为:if(!defined('APP_PHPUNIT_MOLDE') || !APP_PHPUNIT_MOLDE){ App::exec();} 2、修改项目配置文件,以便加载测试数据库打开{项目名称}/Config/config.php 文件。文件头部写入:if(defined('APP_PHPUNIT') || APP_PHPUNIT == true) { $_systemConfig = require APP_ROOT_PATH.'testsystemconfig.php';} else { $_systemConfig = require APP_ROOT_PATH.'systemconfig.php';}3、Thinkphp 测试用例在测试项目目录Service目录下创建文件UserServiceTest.php,内容如下<?phprequire_once'PHPUnit/Autoload.php';require_once'../ServiceInit.php';/** * 会员业务测试类 * */class UserServiceTest extends BaseModelTest{ /** * 测试管理员登录 */ public function testLogin() { //echo THINK_PATH; $s_user = Ap::GetService('User'); $_rtn =$s_user->Login('admin','admin'); $this->assertEquals(true,$_rtn); } /** * 验证用户名是否唯一检查 */ public function testCheck() { //echo THINK_PATH; $s_user = Ap::GetService('User'); $_rtn =$s_user->Login('admin','admin'); $this->assertEquals(true,$_rtn); } } ?> 切换到Service目录下,命令行输入:phpunit UserServiceTest.php 特别说明:在正式使用时,一般都不用在代码中直接加载require_once'PHPUnit/Autoload.php';require_once'../ServiceInit.php';正式使用时,都会有工具自动加载,或phpunit.xml 已经配置好加载文件er NewSmoo@ott-family:"Times New Roman";color:#3F5FBF'> </blacklist> --> <whitelist addUncoveredFilesFromWhitelist="true"> <directory suffix="Service.class.php">src/Service</directory> <!-- <file>ArrayTest.php</file> //排除文件 <exclude> <directorysuffix=".php">action/lib</directory> <directorysuffix=".php">model</directory> <file>action/lib/Loginxxx.php</file> </exclude> --> </whitelist> </filter> <!-- 测试结果:代码覆盖率,测试结果 <logging> <logtype="coverage-html" target="/tmp/report"charset="UTF-8" highlight="false" lowUpperBound="35"highLowerBound="70"/> <logtype="coverage-clover" target="/tmp/coverage.xml"/> <logtype="coverage-php" target="/tmp/coverage.serialized"/> <logtype="coverage-text" target="php://stdout"showUncoveredFiles="false"/> <logtype="json" target="/tmp/logfile.json"/> <logtype="tap" target="/tmp/logfile.tap"/> <logtype="junit" target="/tmp/logfile.xml"logIncompleteSkipped="false"/> <logtype="testdox-html" target="/tmp/testdox.html"/> <logtype="testdox-text" target="/tmp/testdox.txt"/> </logging> --> <logging> <!-- target(report/html)生成html 文件的目录--> <log type="coverage-html"target="test/Log/html"charset="UTF-8"yui="true"highlight="false"lowUpperBound="35"highLowerBound="70"/> <!-- target(report/coverage/coverage.xml) 生成xml的文件名,生成的xml 用图标插件解析xml--> <log type="coverage-clover"target="test/Log/coverage/coverage.xml"/> </logging></phpunit>本文网址http://write.blog.csdn.net/postedit
0 0
- ThinkPHP网站用Phpunit 测试
- phpunit 测试 thinkphp action
- Phpunit 测试ThinkPHP (原创)
- PHPUnit 测试 thinkphp
- PHP单元测试之PHP测试、PHPUnit的使用、在ThinkPHP中使用PHPUnit
- phpunit thinkphp model单元测试
- phpunit thinkphp model
- PHPUnit(白盒测试)
- phpunit 自动化测试
- 使用 PHPUnit 进行测试
- phpUnit 测试例子
- 编写 PHPUnit 测试
- zendstudio做phpunit测试
- phpunit测试框架
- PHPUnit从零开始(2):编写 PHPUnit 测试
- ThinkPHPUnit关于thinkphp网站开发的测试
- 第一次用 PHPUnit 写测试就上手(上)
- PHPunit
- arch - pacman 使用方法
- ZOJ Problem Set - 3878||Convert QWERTY to Dvorak
- 不能在win挂载目录下进行内核编译
- java动态代理(JDK和cglib)
- OSG+VS2010+win7环境搭建
- ThinkPHP网站用Phpunit 测试
- MyEclipse无法启动--Runtime Environment (JRE) or Java Development Kit (JDK) must be available in order to
- 《Java程序员修炼之道》读书笔记
- Red Hat Enterprise Linux 6.2-32位下一键安装Oracle 11G软件(Shell)
- muduo Tcpconnection类
- springmvc学习笔记(19)——CRUD之增加
- Merge k Sorted Lists
- 【闲话】这个周末
- Mac OS X Yosemite 10.10.3 apache+mysql+django web开发环境的搭建