在PHP单元

时间:2018-06-14 15:12:53

标签: php phpunit

目前我需要在每个测试用例的开头放置

<?php declare(strict_types=1);

运行Phpunit时,是否有更好的自动设置位置

2 个答案:

答案 0 :(得分:3)

不幸的是,无法在全局或每个目录中设置此指令。你必须在每个文件的开头添加这一行。

有关没有全局选项https://wiki.php.net/rfc/scalar_type_hints_v5#strict_types_declare_directive

的原因的详细信息,请参阅此rfc

答案 1 :(得分:0)

默认情况下(已在the duplicate Q&A material on the topic中已经回答)严格类型被禁用,您需要启用它们。

使用vanilla PHP,需要在每个文件级别上完成。

如果您不想手动编辑所有文件,PHP-CS-Fixernikic/TypeUtil等实用程序可以帮助您解决繁重问题。

可以通过modifying the PHP core(或使用php-strict PHP扩展来更改默认行为,这会启用默认设置,这是您要求的 - 但该扩展目前无法立即编译为7.0 - 7.2 b / c它不兼容,需要更重的固定。)

现在一个实用的方法可能就是使用工具。也许是猴子修补la Patchwork2,但我从未尝试过CeWL 5.2 (Some Chaos) Robin Wood (robin@digi.ninja) (https://digi.ninja/) Traceback (most recent call last): 2: from /usr/local/bin/cewl:93:in `<main>' 1: from /usr/local/lib/ruby/site_ruby/2.5.0/rubygems/core_ext/kernel_require.rb:59:in `require' /usr/local/lib/ruby/site_ruby/2.5.0/rubygems/core_ext/kernel_require.rb:59:in `require': cannot load such file -- ./cewl_lib (LoadError)