多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
#### PHPUnit是什么? 它是一款轻量级的php测试框架 #### 为什么要用PHPUnit? 1. facebook在用 2. 可以通过命令操控测试脚本 3. 可以测试性能 4. 可以测试代码覆盖率 5. 可以自动化的更新测试用例的参数数据 6. 各种格式的日志 6. 最最重要的是,功能强大,使用特别简单 #### PHPUnit的安装 ~~~ pear channel-discover pear.phpunit.de pear install phpunit/PHPUnit ~~~ #### 快速入门 ~~~ <?php require_once 'PHPUnit/Framework.php'; class ArrayTest extends PHPUnit_Framework_TestCase { public function testNewArrayIsEmpty() { // 创建数组fixture。 $fixture = array(); // 断言数组fixture的尺寸是0。 $this->assertEquals(0, sizeof($fixture)); } } ?> ~~~ 1. ArrayTest为测试类 2. ArrayTest 继承于PHPUnit_Framework_TestCase 3. 测试方法`testNewArrayIsEmpty()`,测试方法必须为`public`权限,一般以`test`开头,或者你也可以选择给其加注释`@test`来表明该函数为测试函数 ~~~ /** * @test */ public function testNewArrayIsEmpty() { $fixture = array(); $this->assertEquals(0, sizeof($fixture)); } ~~~ #### 命令行启动测试 phpunit 测试文件名,测试`ArrayTest.php`文件 ~~~ phpunit ArrayTest PHPUnit 3.2.10 by Sebastian Bergmann. .. Time: 0 seconds OK (2 tests) ~~~ #### 命令行参数 ~~~ phpunit --help PHPUnit 3.2.10 by Sebastian Bergmann. Usage: phpunit [switches] UnitTest [UnitTest.php] --log-graphviz <file> Log test execution in GraphViz markup. --log-json <file> Log test execution in JSON format. --log-tap <file> Log test execution in TAP format to file. --log-xml <file> Log test execution in XML format to file. --log-metrics <file> Write metrics report in XML format. --log-pmd <file> Write violations report in PMD XML format. --coverage-html <dir> Generate code coverage report in HTML format. --coverage-xml <file> Write code coverage information in XML format. --test-db-dsn <dsn> DSN for the test database. --test-db-log-rev <r> Revision information for database logging. --test-db-prefix ... Prefix that should be stripped from filenames. --test-db-log-info ... Additional information for database logging. --testdox-html <file> Write agile documentation in HTML format to file. --testdox-text <file> Write agile documentation in Text format to file. --filter <pattern> Filter which tests to run. --group ... Only runs tests from the specified group(s). --exclude-group ... Exclude tests from the specified group(s). --loader <loader> TestSuiteLoader implementation to use. --repeat <times> Runs the test(s) repeatedly. --tap Report test execution progress in TAP format. --testdox Report test execution progress in TestDox format. --no-syntax-check Disable syntax check of test source files. --stop-on-failure Stop execution upon first error or failure. --verbose Output more verbose information. --wait Waits for a keystroke after each test. --skeleton Generate skeleton UnitTest class for Unit in Unit.php. --help Prints this usage information. --version Prints the version and exits. --configuration <file> Read configuration from XML file. -d key[=value] Sets a php.ini value. ~~~