LoginSignup
0
0

More than 5 years have passed since last update.

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

Posted at

概要

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

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

環境

  • PHP 7.0.4
  • Laravel 5.1
<?php

namespace App\Observers;

use App\Models\User;

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 にしたらエラー起こらなくなった。謎。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0