为了提高我的代码质量,我决定尝试学习如何使用单元测试而不是我最平庸的测试解决方案来测试我的代码.
我决定使用composer安装PHPUnit,用于个人库,允许我实现常见的数据库功能.起初我没有PHPUnit的配置文件,当我运行如下命令:
$ phpunit tests/GeneralStringFunctions/GeneralStringFunctionsTest
Run Code Online (Sandbox Code Playgroud)
请注意,这是一个终端命令,所以我没有包含.php扩展名.上面提到的GeneralStringFunctionsTest实际上是一个GeneralStringFunctionsTest.php文件.
输出是我的预期:
时间:31毫秒,内存:2.75Mb
好的(1个测试,1个断言)
然后,我尝试使用配置文件自动加载测试套件,而不必每次都手动输入文件.我创建了一个phpunit.xml在我的根目录中调用的文件,并在文件中输入以下内容:http://pastebin.com/0j0L4WBD:
<?xml version = "1.0" encoding="UTF-8" ?>
<phpunit>
<testsuites>
<testsuite name="Tests">
<directory>tests</directory>
</testsuite>
</testsuites>
</phpunit>
Run Code Online (Sandbox Code Playgroud)
现在,当我运行命令时:
phpunit
Run Code Online (Sandbox Code Playgroud)
我得到以下输出:
Sebastian Bergmann和贡献者的PHPUnit 4.5.0.
配置从/Users/muyiwa/Projects/DatabaseHelper/phpunit.xml中读取
时间:16毫秒,内存:1.50Mb
没有执行测试!
如果它有用,我的目录结构如下:
src - 顶级目录(包含我的所有源代码)
测试 - 顶级目录(包含我的所有测试,结构与我的src文件夹相同)
供应商 - Composer第三方文件
我还有作曲家json和锁定文件,以及顶层的phpunit xml文件作为文件.
phpunit.xml为tests/GeneralStringFunctionsphpunit.xml为./testsphpunit.xml文件移动到tests目录,然后将目录更改为./而不是tests.phpunit.xml以将"测试"指定为显式后缀.