清风徐来
Michael's Blog
codeigniter2中使用simpletest做单元测试

接近年底,人手紧张。为了保证进度的同时还要保证质量,于是就单元测试就出现在了淡水的视野。

由于采用codeigniter2,所以首选是内置的unit_test类。但是实在是比较的简单,所以就看中了simpletest。 但是ci+simpletest整合起来,网上可用的并不多。支持1.6/1.7的倒是有。

最后才用呢了codeigniter—simpletest,但是默认在php5.2下,并不能运行。做了些调整,嗯。记录一下。

##安装      unit_test.php文件应该放在CodeIgniter的根目录,也就是index.php相同的地方      打开这个文件,并且在文件顶部改变一下以适合你的路径。      tests目录可以放到任何你想放的地方,但放在根目录比较好。      所有测试文件需要命名成“test_name_folder.php”的格式。例如:      test_whatever_bug.php   test_string_helper.php   test_auth_library.php   test_core_model.php         增加了一个完整的simpletest下载,仅定制了“simpletest/extensions/my_reporter.php”。

  ##注:      在目录“tests”里,包含了两个测试文件的例子。test_users_model。php并能运行,因为你的程序里没有对应的user model。它只是一个提供的指导。      注意,simpletest版本不支持php 5.3

下面的修改很重要!!!

淡水的本机测试无法成功,查看日志后,淡水做了如下修改: 1,unit_test.php 的32-36行;的构造函数: public function __construct($lable=false) { parent::__construct($lable); $this->_ci =& get_instance(); }

2,test/tests/test_gui.php增加编码支持:

3,test_123_bug.php的构造函数里,调用父类构造时,添加了测试主题。方便显示。可以忽视。

4,test_user_model.php的构造改用php5的方式调用: public function __construct() { parent::__construct(‘Users Model’); $this->load->model(‘users/users_model’); $this->rand = rand(500,15000); }

5,另外还增加了test_homepage.php的demo,来演示如何测试界面。


最后修改于 2011-10-29