PHPUnit测试需要在“/ test”目录中吗?

时间:2011-09-21 22:11:00

标签: php unit-testing tdd phpunit

使用PHPUnit时,测试是否需要在/ tests目录中? PHPUnit如何知道测试是“测试”?它是解析文件并查找方法名称,还是使用某种文件命名约定?

4 个答案:

答案 0 :(得分:6)

  

测试需要在/ tests目录中吗?

没有

  

PHPUnit如何知道测试是“测试”?

通过反射(以及用户指定要查看的目录)。

答案 1 :(得分:4)

  

它是解析文件并查找方法名称,还是使用某种文件命名约定?

简而言之:

文件名需要以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)

进入您的设置和目录,然后选择并验证您的测试和源位置是否已添加。