gpt4 book ai didi

phpunit 白名单与黑名单

转载 作者:搜寻专家 更新时间:2023-10-31 21:44:38 24 4
gpt4 key购买 nike

试图决定哪一个更适合我的情况。根据 phpunit 文档(非常有限),白名单应该包括目录内的所有文件,但它似乎不是那样工作的。除了 phpunit 手册之外,有没有人有任何建议或可以给我指出一个很好的引用资料。我正在使用 XML 配置文件。提前致谢!

<?xml version="1.0" encoding="utf-8"?>
<phpunit>
<filter>
<whitelist>
<directory suffix=".php">/home/ddohr/git/project/</directory>
<exclude>
<directory suffix=".php">/home/ddohr/git/project/vendor/</directory>
<directory suffix=".php">/home/ddohr/git/project/plugins/</directory>
<directory suffix=".php">/home/ddohr/git/project/test/</directory>
</exclude>
</whitelist>
</filter>
</phpunit>

最佳答案

更新:以下不再适用于 PHPUnit 3.6 及更高版本。参见 Add files to code-coverage white/blacklists in bootstrap.php for PHPUnit对于新的解决方案。

原始答案

至于“白名单与黑名单”问题,请注意它们是互斥的,白名单胜过黑名单。我们在我们的项目中使用白名单,因为我们希望在没有测试的情况下报告 0% 的覆盖率。我们的 bootstrap.php 模块设置了白名单,因为这似乎比当时将它们放在 phpunit.xml 中更易于管理。

例如,库项目的 bootstrap.php 使用 includeDirectoryForCodeCoverage() 将其源添加到白名单:

includeDirectoryForCodeCoverage(MY_LIBRARY_PATH);

这是一个简单的助手,用于抽象对 PHP_CodeCoverage 的实际调用:

function includeDirectoryForCodeCoverage($path) {
PHP_CodeCoverage_Filter::getInstance()
->addDirectoryToWhitelist($path);
}

function includeFileForCodeCoverage($path) {
PHP_CodeCoverage_Filter::getInstance()
->addFileToWhitelist($path);
}

function includeFilesForCodeCoverage(array $paths) {
PHP_CodeCoverage_Filter::getInstance()
->addFilesToWhitelist($paths);
}

但是,黑名单仍然很方便。 PHPUnit 将隐藏黑名单文件中任何代码的堆栈跟踪条目。出于这个原因,我添加了这个小 gem :

function ignoreDirectoryInStackTraces($path) {
PHP_CodeCoverage_Filter::getInstance()
->addDirectoryToBlacklist($path);
}

关于phpunit 白名单与黑名单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5871350/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com