问题
为了提高代码质量,我决定尝试学习如何使用单元测试而不是平庸的最佳测试解决方案来测试代码。
我决定使用composer为个人库安装PHPUnit,这使我可以实现常见的数据库功能。最初,我没有用于PHPUnit的配置文件,当我运行以下命令时:
$ phpunit tests/GeneralStringFunctions/GeneralStringFunctionsTest
请注意,这是一个终端命令,因此未包含.php
扩展名。上面提到的GeneralStringFunctionsTest实际上是一个GeneralStringFunctionsTest.php
文件。
输出是我期望的:
时间:31毫秒,内存:2.75Mb
OK(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>
现在,当我运行命令时:
phpunit
我得到以下输出:
Sebastian Bergmann和贡献者的PHPUnit 4.5.0。
从/Users/muyiwa/Projects/DatabaseHelper/phpunit.xml中读取配置
时间:16毫秒,内存:1.50Mb
没有执行测试!
如果有帮助,我的目录结构如下:
src-顶级目录(包含所有源代码)
测试-顶级目录(包含所有测试,结构与src文件夹相同)
供应商-Composer第三方文件
我也有composer json和lock文件,以及顶层phpunit xml文件。
我尝试过的事情
- 将目录更改
phpunit.xml
为tests/GeneralStringFunctions
- 将目录更改
phpunit.xml
为./tests
- 将
phpunit.xml
文件移动到tests
目录,然后将目录更改为./
而不是tests
。 - 在目录标记中添加后缀属性,
phpunit.xml
以将“ Tests”指定为显式后缀。
tests/GeneralStringFunctions/GeneralStringFunctionsTest
文件夹还是文件名?