2017-01-16 64 views
0

我想知道是否有任何工具为测试控制器的测试类提供代码覆盖率分析。我知道有一些单元测试,但那不是我正在寻找的。控制器测试类的代码覆盖率分析

我正在开发一个Symfony2项目,里面有很多控制器,我写了一些测试来检查它们的行为,所以现在我想知道它们是多么完整。

谢谢。

P.S. :这是一个什么样一个的例子我的我的测试看起来可以像

public function testSample() { 

     $client = $this->createAuthenticatedClient($this->getReference('admin-0')) ; 
     $client->followRedirects() ; 
     $crawler = $client->request("GET", "/config/database/"); 
     $this->assertStatusCode(200, $client); 

} 

正如你所看到的,我真的不测试我的User类,而是其行为取决于其creditential的(在这种情况下,管理员)

回答

0

您可能想要根据您展示的示例查看Functional Tests。想想你将如何测试你在代码中创建的代码的所有功能。如果你从网络的角度来看它,就像点击链接和按钮等等。无论用户可能做什么。看看我写在Using Mink to perform Functional Tests in Symfony3上的这个博客。

像@geoB指出的那样,你可以使用命令行:

PHPUnit的--coverage文本

要显示您的报道。下面显示了一个示例屏幕截图: phpunit --coverage

+0

你的屏幕截图确实有助于理解我应该期待什么。该命令工作正常,但我必须把白名单,以获得连贯的结果。 – Asew

0

这里的phpunit命令的摘录:

phpunit --help 
PHPUnit 5.4.6 by Sebastian Bergmann and contributors. 

Usage: phpunit [options] UnitTest [UnitTest.php] 
     phpunit [options] <directory> 

Code Coverage Options: 

    --coverage-clover <file> Generate code coverage report in Clover XML format. 
    --coverage-crap4j <file> Generate code coverage report in Crap4J XML format. 
    --coverage-html <dir>  Generate code coverage report in HTML format. 
    --coverage-php <file>  Export PHP_CodeCoverage object to file. 
    --coverage-text=<file> Generate code coverage report in text format. 
          Default: Standard output. 
    --coverage-xml <dir>  Generate code coverage report in PHPUnit XML format. 
    --whitelist <dir>   Whitelist <dir> for code coverage analysis. 
    --disable-coverage-ignore Disable annotations for ignoring code coverage. 

请注意,您可以添加IF Xdebug的加载将生成一个覆盖报告参数。

+0

我觉得这个命令本身是一个单元测试,但它为函数测试提供了代码覆盖范围。无论如何,感谢您的帮助,白名单选项非常有帮助。 – Asew