The Problem
为了提高我的代码质量,我决定try 学习如何使用单元测试来测试我的代码,而不是使用最好的平庸测试解决方案.
我决定使用composer为个人库安装PHPUnit,它允许我实现常见的数据库功能.起初,我没有PHPUnit的配置文件,当我运行以下命令时:
$ phpunit tests/GeneralStringFunctions/GeneralStringFunctionsTest
请注意,这是一个终端命令,所以我没有包括.php
扩展名.上面提到的GeneralStringFunctionsTest实际上是一个GeneralStringFunctionsTest.php
文件.
输出与我预期的一样:
时间:31毫秒,内存:2.75Mb
OK(1个测试,1个断言)
然后,我try 使用配置文件自动加载测试套件,而不必每次都手动键入文件.我在根目录中创建了一个名为phpunit.xml
的文件,并将以下内容输入到该文件中:http://pastebin.com/0j0L4WBD:
<?xml version = "1.0" encoding="UTF-8" ?>
<phpunit>
<testsuites>
<testsuite name="Tests">
<directory>tests</directory>
</testsuite>
</testsuites>
</phpunit>
现在,当我运行命令时:
phpunit
我得到以下输出:
PHPUnit 4.5.0由塞巴斯蒂安·伯格曼和贡献者编写.
从/Users/muyiwa/Projects/DatabaseHelper/phpunit读取配置.xml
时间:16ms,内存:1.50Mb
没有执行任何测试!
为了方便起见,我的目录 struct 如下:
SRC-顶级目录(包含我所有的源代码)
测试-顶级目录(包含我的所有测试, struct 与我的src文件夹相同)
供应商-编写器第三方文件
我还有composer json和lock文件,以及作为文件的顶层phpunit xml文件.
Things I've Tried
- 将
phpunit.xml
中的目录更改为tests/GeneralStringFunctions
- 将
phpunit.xml
中的目录更改为./tests
- 将
phpunit.xml
文件移动到tests
目录,然后将目录更改为./
而不是tests
. - 在
phpunit.xml
中向目录标记添加后缀属性,以指定"Tests"作为显式后缀.