- 浏览: 388240 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (229)
- java编程 (4)
- java实用程序 (2)
- 算法设计 (34)
- 数据库 (8)
- ACM模板 (12)
- 技术术语 (1)
- java_web (3)
- php (22)
- eclipse (3)
- linux (25)
- linux命令使用心得 (3)
- web服务器 (8)
- IT知识 (2)
- 前端技术 (17)
- 开源软件 (5)
- vim (3)
- linux多线程 (9)
- web开发经验 (3)
- lua (5)
- linux编程 (3)
- smarty (1)
- mysql (4)
- Hive (2)
- 数据挖掘 (9)
- python (2)
- 生活 (1)
- C++ (2)
- 计算机 (1)
- objective-c (11)
- css (2)
- 游戏 (1)
- Mac (1)
最新评论
-
lr544463316:
我的怎么不行呀.....
Mysql Access denied for user ''@'localhost' to database 的一种解决方法 -
babaoqi:
使用时需要注意group_concat函数返回值的最大长度=g ...
mysql中的group_concat函数 -
代码能力弱成渣:
可以帮我看下我的代码么?我自己写的sam,也有ac过题的,但是 ...
求两个字符串的最长公共连续子序列(SAM实现) -
atgoingguoat:
有1000个?不过还是收藏下。
jquery常用的插件1000收集(转载)
转载自: http://d.hatena.ne.jp/Kenji_s/20120117/1326763908
How to use PHPUnit (CIUnit) with CodeIgniter 2.1.0
This article explains how to install and use PHPUnit/CIUnit with CodeIgniter 2.1.0.
What is CIUnit?
CIUnit is a bridge between your CodeIgniter application and PHPUnit.
- CIUnit Official Site http://www.foostack.com/foostack/
But the official release supports CodeIgniter 1.7.2. So I use the fork of CIUnit (my-ciunit).
Install PHPUnit
$ sudo pear channel-discover pear.phpunit.de $ sudo pear channel-discover components.ez.no $ sudo pear channel-discover pear.symfony-project.com $ sudo pear install phpunit/PHPUnit
Install CodeIgniter
$ wget http://downloads.codeigniter.com/reactor/CodeIgniter_2.1.0.zip $ unzip CodeIgniter_2.1.0.zip
Install CIUnit
Download my-ciunit
The default branch of my-ciunit is now for CodeIgniter 2.1.0.
$ wget https://bitbucket.org/kenjis/my-ciunit/get/default.zip $ unzip default.zip
If you use CodeIgniter 2.0.3, get "CI 2.0.3" branch.
$ wget https://bitbucket.org/kenjis/my-ciunit/get/CI%202.0.3.zip $ unzip "CI 2.0.3.zip"
Install my-ciunit by shell script
my-ciunit has a installer shell script.
How to use:
$ tools/install.sh /path/to/CodeIgniter/ [database_name [database_user [database_password [database_host]]]]
Note: The database name for testing must end with "_test".
For example:
$ cd kenjis-my-ciunit-* $ tools/install.sh ../CodeIgniter_2.1.0/ ciunit_test root password
This script creates database config file for testing, "application/config/testing/database.php".
Install my-ciunit manually
Copy application folder and tests folder in my-ciunit to CodeIgniter top diretory.
$ cd kenjis-my-ciunit-* $ cp -R application /path/to/CodeIgniter_2.1.0/ $ cp -R tests /path/to/CodeIgniter_2.1.0/
And create database config file for testing, "application/config/testing/database.php".
Note: The database name for testing must end with "_test".
If you use MY_Loader, MY_Output, MY_Session
Change the parent classes to MY_* in:
- application/third_party/CIUnit/core/CIU_*.php
- application/third_party/CIUnit/libraries/CIU_*.php
Directory structure of CIUnit
CodeIgniter/ application/ third_party/ CIUnit/ ... CIUnit itself tests/ controllers/ ... tests of controller fixtures/ ... fixtures helpers/ ... tests of helper libs/ ... tests of library models/ ... tests of model system/ ... tests of system (PHP)
Prepare Database for Testing
The database name for testing must end with "_test". This is the specification of CIUnit.
Create "ciunit_test" database, and create "phone_carrier" table for a sample model test code in CIUnit.
CREATE TABLE IF NOT EXISTS `phone_carrier` ( `name` varchar(255) NOT NULL, `txt_address` varchar(255) NOT NULL, `txt_message_length` int(11) NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
Prepare Model for sample test code
CIUnit has a sample test code for "Phone_carrier_model" model, but has no "Phone_carrier_model" model code.
Create the model.
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); class Phone_carrier_model extends CI_Model { function __construct() { parent::__construct(); $this->load->database(); } function getCarriers(array $attributes) { foreach ($attributes as $field) { $this->db->select($field)->from('phone_carrier'); $query = $this->db->get(); foreach ($query->result_array() as $row) { $data[] = array($field, $row[$field]); } } return $data; } } /* End of file phone_carrier_model.php */ /* Location: ./application/models/phone_carrier_model.php */
Run tests
Before run phpunit, move to tests folder.
$ cd tests/
To run all tests,
$ phpunit
To run tests of model, specify a folder,
$ phpunit models
To run a specific test file,
$ phpunit models/PhoneCarrierModelTest.php
If all tests have passed, you'll see green OK below:
Next: Database Testing of CodeIgniter Application with PHPUnit (CIUnit) - A Day in Serenity @ Kenji
发表评论
-
php redis api
2014-10-25 10:13 2739参考:http://jianzhong5137.blog.1 ... -
php创建zookeeper临时变量
2014-10-17 18:37 1165临时变量会在连接断开之后被删除。 <?php ... -
设置session_id,现有的session数据会覆盖原有的
2014-08-30 11:27 965有两个session_id $sid1 = "d ... -
php的session不支持数字作为key的原因
2014-08-30 10:57 1784php_serialize is available fro ... -
PHP输入流php://input
2014-04-09 11:21 887转自: http://blog.csdn.net/lxzo1 ... -
php保留两位小数但不四舍五入
2013-12-23 18:10 739<?php $s = '1.339' ... -
PHP5的__clone实现深复制
2013-01-30 01:57 824<?php class cb{ va ... -
phpinfo() 中 Local Value Master Value 的区别
2012-12-19 00:09 974转自: http://hi.baidu.com/kkwtre/ ... -
PHP session回收机制
2012-12-18 23:49 1406转自: http://blog.csdn.net/21aspn ... -
php时区设置
2012-11-27 00:17 616转自: http://www.jb51.net/article ... -
关于php中trigger_error的日志输出到哪里的问题
2012-11-25 14:34 2985#display_errors display_errors ... -
打印调用栈的函数print_stack_trace
2012-10-10 22:07 6186打印调用栈的函数print_stack_trace ... -
时间戳转换为“年-月-日 时:分:秒”的格式
2012-09-18 11:38 1380<?php if($argc < 2){ ... -
启动php-cgi
2012-09-13 10:30 983命令为: php-cgi --fpm --fpm-confi ... -
php实用函数
2012-09-04 00:37 691常常会需要当经常会忘记,还是记下来吧 get_defin ... -
php session配置
2012-08-21 16:23 1005转自: http://blog.csdn.net/jallin ... -
php+mysql的安装
2012-08-15 17:35 902设用户名为work。 假设mysql已经安装成功,安装目录为 ... -
php用redis存储session的配置项示例
2012-08-06 23:09 908session.save_handler = re ... -
php正则表达式例子
2012-07-03 20:56 889* 判断字符串是否包含 ... -
php抓取网页内容的方法
2011-10-25 16:52 2064转自: http://bbs.phplovers.com/re ...
相关推荐
本项目“imadoki-codeigniter-phpunit”是Imadoki为初学者准备的一个教程,旨在帮助他们掌握如何在CodeIgniter框架中集成和使用PHPUnit进行测试驱动开发(TDD)。 在CodeIgniter中集成PHPUnit,首先需要确保你已经...
ci-phpunit-test, 一种简单的使用 PHPUnit 3.x 语言的方法 ci-phpunit-test用于 CodeIgniter 3 。x 在 CodeIgniter 3. x. 中使用PHPUnit的简便方法你根本不需要修改CodeIgniter核心文件。你可以轻松编
适用于CodeIgniter 3.x的ci-phpunit-test 将PHPUnit与 3.x结合使用的更简单方法。 您根本不需要修改CodeIgniter核心文件。 您可以轻松编写控制器测试。 也许没有什么是不可测试的。 有据可查。要求PHP 7.3或更高版本...
use PHPUnit\Framework\TestCase; class CalculatorTest extends TestCase { public function testAdd() { $calculator = new Calculator(); $result = $calculator->add(2, 3); $this->assertEquals(5, $...
通过以上步骤,我们可以将PHPunit的强大测试能力与CodeIgniter的灵活性相结合,确保项目在开发过程中保持高质量和稳定性。同时,持续集成的实施进一步提高了团队协作效率,减少了部署风险。在实际开发中,不断优化和...
use PHPUnit\Framework\TestCase; class MyClassTest extends TestCase { public function testAddFunction() { $myClass = new MyClass(); $result = $myClass->add(2, 3); $this->assertEquals(5, $result);...
如果你在用PHPUNIT会报 include(PHPUnit_Extensions_Story_TestCase.php): failed to open stream: No such file or directory include(PHPUnit_Extensions_Database_TestCase.php): failed to open stream: No such...
use PHPUnit\Framework\TestCase; require_once 'path/to/Product.php'; class ProductTest extends TestCase { public function testGetName() { $product = new Product(); $product->setName('Sample ...
6. **`bin`目录**:`bin`目录通常包含Composer安装的可执行文件,比如`phpunit`,这是 PHPUnit的命令行脚本,可以直接运行测试。 7. **`vendor`目录**:这个目录存储所有通过Composer安装的库,包括PHPUnit和其他...
phpunit-extensions 是 Etsy 的 PHPUnit 扩展。 标签:phpunit
phpunit 3 67 最新版 PHPUnit是一个轻量级的PHP测试框架 它是在PHP5下面对JUnit3系列版本的完整移植 是xUnit测试框架家族的一员 它们都基于模式先锋Kent Beck的设计 单元测试是几个现代敏捷开发方法的基础 使得...
**PHPUnit在Windows环境下的应用与挑战** PHPUnit是一款广泛使用的PHP单元测试框架,它使得开发者能够在PHP项目中进行严谨的测试驱动开发(TDD)或行为驱动开发(BDD)。尽管 PHPUnit 主要针对的是跨平台的开发环境...
PHPUnit手册详细介绍了如何安装PHPUnit、编写测试、执行测试、使用测试替身、组织测试套件、分析代码覆盖率,以及扩展PHPUnit框架等各个方面。 首先,手册介绍了PHPUnit的安装,包括系统需求、通过PHP档案包(PHAR)...
本指南将详细介绍如何配置和使用 `phpunit`。 首先,为了安装 `phpunit`,我们需要先安装 PEAR (PHP Extension and Application Repository),它是 PHP 的一个包管理器。将 `go-pear.phar` 文件放到 PHP 的安装目录...
3. 接着,使用`pear install phpunit/PHPUnit`命令来安装phpUnit。 4. 安装完成后,你可以通过`phpunit --version`检查phpUnit是否安装成功。 描述中提到这个教程是经过测试的,这意味着每个步骤都应该能正常工作。...
在给定的压缩包文件"phpunit4.8.35"中,包含的是PHPUnit的一个特定版本,即4.8.35。这个版本发布于PHP测试领域的一个重要时期,因为它在PHP 5.x时代非常流行,同时也支持向PHP 7的过渡。 `phpunit.phar`文件是PHP的...
本版次适用于3.2版的PHPUnit。当然,大多数示例应该也可用于2.0-3.1版的PHPUnit。本书后面的“用于PHP 4的PHPUnit”(附录B - 译注)部分涉及了适用于PHP 4的旧版PHPUnit,它们已不再积极开发。 读者需要很好的理解...
use PHPUnit\Framework\TestCase; class ConverterTest extends TestCase { public function testHello() { $this->assertEquals('Hello', 'Hell' . 'o'); } } ``` 6. **配置PHPUnit**: 配置PHPUnit的...