支持各級別的代碼自動測試
使用:
phpunit AllTests #全部測試
phpunit V2007_AllTests #V2007項目測試
phpunit V2007_Example_AllTests #V2007項目中Example模塊測試
實現:
Tests
----| AllTests (All Test With test class: AllTests)
----| V2007 (A Project folder)
--------| AllTests.php (Project Testsuit, With test class: V2007_AllTests)
--------| Example.php (Module API Testcase, With test class: V2007_ExampleTest)
--------| Example (A Module folder)
------------| AllTests.php (Model Testsuit, With test class: V2007_Example_AllTests)
------------| ArrayTest.php (Function Testcase, With test class V2007_Example_ArrayTest)
文件及類的命名方式規范:
1. TestCase 以"Test"結尾
2. TestSuit 以"Tests"結尾
3. 目錄結構和類名根據邏輯測試結構而定,如需V2007項目的Example模塊的Array類/函數測試用例,則文件置于V2007/Example/ArrayTest.php, 其類名為V2007_Examlpe_ArrayTest
4. 每次測試以TestSuit進行,不支持單獨運行TestCase測試
代碼示例:
/**
* AllTests.php
*/
if (!defined('PHPUnit_MAIN_METHOD')) {
define('PHPUnit_MAIN_METHOD', 'AllTests::main');
}
//List your projects HERE
require_once 'V2007/AllTests.php';
class V2007_AllTests
{
public static function main()
{
PHPUnit_TextUI_TestRunner::run(self::suite());
}
public static function suite()
{
$suite = new PHPUnit_Framework_TestSuite('V2007 rollenc.com');
//Add your project tests HERE
$suite->addTest(V2007_AllTests::suite());
return $suite;
}
}
if (PHPUnit_MAIN_METHOD == 'AllTests::main') {
AllTests::main();
}
原文轉自:http://www.anti-gravitydesign.com