从 PHPUnit 代码覆盖率中排除 PHP 接口

发布于 2024-11-13 06:10:59 字数 270 浏览 1 评论 0原文

我有一个 PHPUnit 测试,用于测试名为 HelpTokenizerTest 的类。该类实现 TokenizerInterface。由于某些奇怪的原因,我无法将 TokenizerInterface 从代码覆盖率中排除。

尽管使用了 @codeCoverageIgnore 甚至 @codeCoverageIgnoreStart/End,但它在代码覆盖率报告中显示为未覆盖。

有什么想法吗?

我不希望该接口包含在我的测试覆盖范围中,因为它不执行任何操作。测试接口有什么意义?

I've got a PHPUnit test that tests a class called HelpTokenizerTest. This class implements TokenizerInterface. For some weird reason I cannot exclude the TokenizerInterface from code coverage.

It shows up in code coverage reports as not covered, despite using @codeCoverageIgnore or even @codeCoverageIgnoreStart/End.

Any ideas?

I don't want the interface included in my test coverage, as it doesn't do anything. What's the point of testing an Interface.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

动次打次papapa 2024-11-20 06:10:59

使用 phpunit.xml 时,您可以设置过滤器来排除具有特定名称、特定文件夹或具有特定扩展名的文件。

请参阅相关文档

示例:

<testsuite name="Application Test Suite">
    <directory>./application/</directory>
</testsuite>

<filter>
    <blacklist>
        HERE
    </blacklist>
       or alternatively
    <whitelist>
        <directory suffix=".php">../library/</directory>
        <directory suffix=".php">../application/</directory>
        <exclude>
            AND HERE
            <directory suffix=".phtml">../application/</directory>
        </exclude>
    </whitelist>
</filter>

When using a phpunit.xml you can set up filters to exclude files with particular names, in particular folders or with an particular extension.

see the documentation for it

Example:

<testsuite name="Application Test Suite">
    <directory>./application/</directory>
</testsuite>

<filter>
    <blacklist>
        HERE
    </blacklist>
       or alternatively
    <whitelist>
        <directory suffix=".php">../library/</directory>
        <directory suffix=".php">../application/</directory>
        <exclude>
            AND HERE
            <directory suffix=".phtml">../application/</directory>
        </exclude>
    </whitelist>
</filter>

空城之時有危險 2024-11-20 06:10:59

您可以在文件开头使用@codeCoverageIgnore作为注释来获得100% 0/0覆盖率。

<?php // @codeCoverageIgnoreStart 
interface MyInterface
{
    public function myfunction();
}

请注意,它在评论块中不起作用。

PHPUnit 的 github 上开放的问题: https://github.com/sebastianbergmann/phpunit/issues/497

You can use @codeCoverageIgnore as a comment at the beginning of the file to get 100% 0/0 coverage.

<?php // @codeCoverageIgnoreStart 
interface MyInterface
{
    public function myfunction();
}

Note that it doesn't work in a comment block.

Issue open on PHPUnit's github: https://github.com/sebastianbergmann/phpunit/issues/497

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文