PHP 7.0 で PHPUnit のカバレッジレポート出そうとすると Segmentation Fault

概要

Laravelの機能である Observer で、そこそこ複雑な処理をさせた状態で vendor/bin/phpunit したら segmentation fault (core dumped) で死んだ。

で、PHPのバージョンを上げたら治った。謎。

環境

  • PHP 7.0.4
  • Laravel 5.1
<?php

namespace AppObservers;

use AppModelsUser;

class UserObserver
{
    public function created(User $user)
    {
        // そこそこ複雑な処理
        $user->hogehoge = bcrypt('fugafuga');
        $user->save();
    }
}

この関数内を処理を全てコメントアウトしたら動いた。

ちなみに phpunit.xml はこんな感じ。

phpunit.xml(一部)
<?xml version="1.0" encoding="UTF-8"?>
    <php>
        <env name="APP_ENV" value="testing"/>
        <env name="CACHE_DRIVER" value="array"/>
        <env name="SESSION_DRIVER" value="array"/>
        <env name="QUEUE_DRIVER" value="sync"/>
        <env name="DB_DRIVER" value="mysql"/>
        <env name="DB_HOST" value="127.0.0.1"/>
        <env name="DB_DATABASE" value="homestead_test"/>
        <env name="APP_HOST" value="http://localhost"/>
    </php>
    <filter>
        <whitelist>
            <directory suffix=".php">./app/Http/Controllers</directory>
            <directory suffix=".php">./app/Models</directory>
            <directory suffix=".php">./app/Services</directory>
            <directory suffix=".php">./app/Http/Middleware</directory>
        </whitelist>
    </filter>
    <logging>
        <log type="coverage-html" target="./storage/coverage" charset="UTF-8"
            yui="true" highlight="true"
            lowUpperBound="50" highLowerBound="80" />
    </logging>
</phpunit>

php 7.1.4 にしたらエラー起こらなくなった。謎。

[紹介元] PHPタグが付けられた新着投稿 – Qiita PHP 7.0 で PHPUnit のカバレッジレポート出そうとすると Segmentation Fault

関連記事