PHPUnitを実行すると、PHP 'error_log()
またはMonolog経由でログに記録するクラスをテストします(カスタムファイルに)、ログされたコンテンツはコマンドラインにダンプされます。PHPUnitは、PHPのデフォルトエラーログとカスタムアプリケーションログファイルの両方からすべてのログメッセージをコマンドラインに出力します
でも最も単純な形で私が問題を再現することができます。それが問題なのかどうかは分からないが、最終的には、コマンドラインでログに記録されたすべてのアイテムのダンプをオフにしたいということだ。私はしばらくの間、頭に頭を叩いていましたが、私はそれを理解していないようです。これをどうやって消すのですか?
事実。
- 私がログインするすべての項目は、以下の戻り空の文字列のテストを実行する前に、CLI
- に示されています。
ini_get('error_log');
- 私はnginx(1.10.1)+ php-fpm(PHP 7.0.7を使用しています)
- 関連する問題はありませんが、 Stop log messages from appearing in the command line
例。
class OutputOnCliTest extends PHPUnit_Framework_TestCase
{
/** @test */
public function assertAndLogSomething()
{
$this->assertEquals(true, true);
error_log('I do not want to show this on the command line');
}
/** @test */
public function assertAndLogSomethingElse()
{
$logger = new \Monolog\Logger('loggerName');
// no need to set a Monolog handler for this example, just want to log right away
$logger->info('I do not want to show this either');
$this->assertEquals(true, true);
}
}
CLI:
$ ls -la
-rw-r--r-- 1 user group 1150 Dec 7 18:47 phpunit.xml
drwxr-xr-x 4 user group 136 Dec 7 17:44 tests
drwxr-xr-x 17 user group 578 Dec 7 10:05 vendor
$ ./vendor/bin/phpunit
PHPUnit 5.7.2 by Sebastian Bergmann and contributors.
I do not want to show this on the command line
.[2016-12-07 16:53:58] loggerName.INFO: I do not want to show this either
. 2/2 (100%)
Time: 24 ms, Memory: 4.00MB
OK (2 tests, 2 assertions)
$
PHPUnit.xml
<phpunit bootstrap="vendor/autoload.php">
<testsuites>
<testsuite name="Unit-Tests">
<directory>./tests</directory>
</testsuite>
</testsuites>
</phpunit>
は、誰かが私は私の頭を叩いて停止することができます私を助けてください。 :-)