次のパッケージを使用しています: https://github.com/Maatwebsite/Laravel-Excelバージョン 2 と Laravel バージョン 5.1
次のコードでコントローラーメソッドを取得しました。
....
return Excel::create('List', function($excel) use ($list)
{
$excel->sheet('List', function($sheet) use ($list)
{
$sheet->fromModel($list);
});
})
->download('csv');
次のような簡単なテスト:
$this->call('GET', 'route/to/csv', [
'param' => 'value',
]);
$this->dump();
パッケージのこの行[ERROR]: Headers already sent
からの上記のテスト出力。
コントローラー メソッドは正常に動作しますが、テストできません。
--stderr
paramでphpunitを実行しようとしました。その場合、エラーはスローされませんが、CSV ファイルの出力をコンソールにダンプして終了するだけです。また、注釈を付けてテストを実行しようとしましたが@runInSeparateProcess
、次のようなエラーが発生しました。
PHPUnit_Framework_Exception: PHP Notice: Constant LARAVEL_START already defined in bootstrap/autoload.php on line 3
....
PHP Fatal error: Uncaught exception 'ReflectionException' with message 'Class env does not exist' in vendor/laravel/framework/src/Illuminate/Container/Container.php:736
これは Laravel-Excel パッケージのバグでしょうか、それともテストが間違っているのでしょうか?