迷惘的码农。
分类:
2008-03-25 10:48:14
PHPUnit命令行测试启动器可通过phpunit
命令调用。下面的代码显示如何借助PHPUnit命令行测试启动器运行测试:
phpunit ArrayTest
PHPUnit 3.2.10 by Sebastian Bergmann.
..
Time: 0 seconds
OK (2 tests)
对于每个测试的运行,PHPUnit命令行工具输出一个字符指示进展:
.
当测试成功时输出。
F
当运行测试方法过程中一个断言失败时输出。
E
当运行测试方法过程中产生一个错误时输出。
S
当测试被跳过时输出(见)。
I
当测试被标记为不完整或未实现时输出(见)。
PHPUnit区分失败和错误。失败是指违反PHPUnit断言,例如assertEquals()
调用失败。错误是指意外的异常或PHP错误。有时这种区分非常有用,因为错误通常比失败容易修复。如果你得到一大串问题,最好先解决所有错误,然后再看还有没有失败。
我们看看下面代码中的命令行测试启动器的开关:
phpunit --help
PHPUnit 3.2.10 by Sebastian Bergmann.
Usage: phpunit [switches] UnitTest [UnitTest.php]
--log-graphvizLog test execution in GraphViz markup.
--log-jsonLog test execution in JSON format.
--log-tapLog test execution in TAP format to file.
--log-xmlLog test execution in XML format to file.
--log-metricsWrite metrics report in XML format.
--log-pmdWrite violations report in PMD XML format.
--coverage-htmlGenerate code coverage report in HTML format.
--coverage-xmlWrite code coverage information in XML format.
--test-db-dsnDSN for the test database.
--test-db-log-revRevision information for database logging.
--test-db-prefix ... Prefix that should be stripped from filenames.
--test-db-log-info ... Additional information for database logging.
--testdox-htmlWrite agile documentation in HTML format to file.
--testdox-textWrite agile documentation in Text format to file.
--filterFilter which tests to run.
--group ... Only runs tests from the specified group(s).
--exclude-group ... Exclude tests from the specified group(s).
--loaderTestSuiteLoader implementation to use.
--repeatRuns 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.
--configurationRead configuration from XML file.
-d key[=value] Sets a php.ini value.
phpunit UnitTest
运行类UnitTest
提供的测试。该类应该在源文件UnitTest.php
中声明。
UnitTest
必须是继承自PHPUnit_Framework_TestCase
的类或者提供public static suite()
方法的类,该方法返回一个PHPUnit_Framework_Test
对象,例如一个PHPUnit_Framework_TestSuite
类的实例。
phpunit UnitTest UnitTest.php
运行类UnitTest
提供的测试。着各类应该在指定的源文件中声明。
--log-graphviz
使用标记为运行的测试生成日志文件。该文件可用比如工具dot
呈现。可见中更详细的资料。
请注意,该选项只有当PEAR软件包Image_GraphViz
已被安装时才可用。
--log-json
产生格式的日志文件。更多信息见。
--log-tap
为运行的测试产生各式的日志文件。更多详细信息见。
--log-xml
为运行的测试产生XML格式的日志文件。更多详细信息见。
--log-metrics
为测试中的系统产生附带软件规格的XML格式的日志文件。更多详细信息见 。
请注意,该选项只在已安装tokenizer和Xdebug扩展时才可用。
--log-pmd
产生XML格式的日志文件,并且附带比如基于软件规格的违例。更多详细信息见。
请注意,该选项只在已安装tokenizer和Xdebug扩展时才可用。
--coverage-xml
为运行的测试产生附带代码覆盖率信息的XML格式日志文件。更多详细信息见。
请注意,该选项只在已安装tokenizer和Xdebug扩展时才可用。
--coverage-html
产生HTML格式的代码覆盖率报告。更多详细信息见。
请注意,该选项只在已安装tokenizer和Xdebug扩展时才可用。
--charset
指定将用于--report
的字符集。
--test-db-*
将测试结果和代码覆盖率数据写入数据库。更多详细信息见。
请注意,该选项只在已安装PDO扩展时才可用。
--testdox-html
和--testdox-text
位运行的测试产生HTML或纯文本格式的agile文档。更多详细信息见。
--filter
只运行名称匹配给定模式的测试。该模式可为单个测试的名称或匹配多个测试名的。
--group
只运行来自指定组(一个或多个)的测试。可用@group
注解将测试标记为属于某个组。
--exclude-group
排除来自指定组(一个或多个)的测试。可用@group
注解将测试标记为属于某个组。
--loader
指定要用的PHPUnit_Runner_TestSuiteLoader
实现。
标准的测试套件加载器将在当前工作目录和PHP的include_path
配置指令指定的每个目录中查找源文件。依照PEAR的命名约定,例如名为Project_Package_Class
的类被映射为源文件Project/Package/Class.php
。
--repeat
重复运行测试指定的次数。
--stop-on-failure
首次错误或失败即停止运行。
--no-syntax-check
禁用对测试源文件的语法检查。
--tap
使用报告测试进程。更多信息见。
--testdox
将测试进程作为agile文档进行报告。更多信息见。
--verbose
输出更多详细信息,例如未完成或被跳过的测试的名字。
--wait
每个测试之后等待按键。如果你在一个只在活动时(active)才能保持打开状态的窗口中运行测试,这会很有用。
--skeleton
为类Unit
(在Unit.php
中)产生一个测试用例类UnitTest
(在UnitTest.php
中)。更多信息见。
--configuration
从XML文件中读取配置。更多信息见。
-d
设置给定的PHP配置选项的值。
当被测试代码含有PHP语法错误时,TextUI测试启动器可能不打印错误信息就退出。标准的测试套件加载器会检查测试套件源文件的PHP语法错误,但是不包括被测试套件源文件包含的源文件。