控制器测试类的代码覆盖率分析

时间:2017-01-16 16:10:31

标签: php symfony testing

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

我正在研究一个包含很多控制器的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类,而是它的行为取决于它的可信度(在这种情况下,是一个管理员)

2 个答案:

答案 0 :(得分: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.

请注意,您可以添加将生成覆盖率报告的参数如果已加载xdebug

答案 1 :(得分:0)

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

与@geoB指出的一样,您可以使用命令行:

phpunit --coverage-text

显示您的承保范围。下面显示的示例截图如下所示: phpunit --coverage