使用PHPUnit时,测试是否需要在/ tests目录中? PHPUnit如何知道测试是“测试”?它是解析文件并查找方法名称,还是使用某种文件命名约定?
答案 0 :(得分:6)
测试需要在/ tests目录中吗?
没有
PHPUnit如何知道测试是“测试”?
通过反射(以及用户指定要查看的目录)。
答案 1 :(得分:4)
它是解析文件并查找方法名称,还是使用某种文件命名约定?
phpunit myTestStuff.php
PHPUnit_Framework_Test
并添加了所有{{3}} 简而言之:
文件名需要以Test.php
结尾,类需要从PHPUnit_Framework_TestCase
扩展(某些点继承树)。
最好从生产代码中分离测试代码。通常它会镜像文件夹结构。但没有什么能阻止你以不同的方式做到这一点。只需考虑为生产代码生成统计信息(指标)就更容易了。
也许您希望为生产代码和其他测试提供一些自动检查的编码规则。
您希望为代码生成代码覆盖率,并使其包含所有生产代码,但不包括所有测试。 (PHPUnit不会在覆盖范围内显示您的测试类,但是基础和辅助类)
答案 2 :(得分:2)
约定是通过将Test
附加到您正在测试的类中来命名测试类和文件。例如,My_Cool_User
中的My/Cool/User.php
将在My_Cool_UserTest
中使用My/Cool/UserTest.php
进行测试。
我更喜欢将测试分开在自己的目录中,但这不是必需的。通过使用命名约定,您可以告诉PHPUnit如何查找与常规代码混合的所有测试。默认情况下,PHPUnit遵循以上内容,因此如果您将其指向名为myproject
的文件夹,它将查找以Test.php
结尾的所有文件。
答案 3 :(得分:0)
进入您的设置和目录,然后选择并验证您的测试和源位置是否已添加。