Cloud9にlaravelをインストールしてphpunitテストするとエラーが出る。
以下、手順を実行したとき、エラーが出てしまいます。
(1)Cloud9にて、laravelをインストール。
(2)route.php を route_a.php にコピー。
route_a.php に以下記述追加
Route::get('/test/', function () {
echo 'test';
});
(3)ExampleTest.php を以下のように修正
<?php
use Illuminate\Foundation\Testing\WithoutMiddleware;
use Illuminate\Foundation\Testing\DatabaseMigrations;
use Illuminate\Foundation\Testing\DatabaseTransactions;
use Illuminate\Filesystem\Filesystem;
class ExampleTest extends TestCase
{
/**
* A basic functional test example.
*
* @return void
*/
public function testBasicExample()
{
$this->editRoute();
$this->visit('/')
->see('Laravel 5');
$this->visit('https://laravel-cloned-test1-dog-ears.c9users.io/test/');
}
private function editRoute(){
$this->files = new Filesystem;
$this->files->move( './app/Http/routes.php', './app/Http/routes_b.php');
$this->files->move( './app/Http/routes_a.php', './app/Http/routes.php');
Artisan::call('clear-compiled');
Artisan::call('cache:clear');
}
}
(4)phpunitを実行
php ./vendor/bin/phpunit
すると、下記のようなエラーが出ます。
There was 1 failure:
1) ExampleTest::testBasicExample
A request to [http://localhost/test] failed. Received status code [404].
エラー後、editRoute()をコメントアウトして、
ただテストだけをすると、/test/もテストOKが出ます。
※実際には、editRoute()は外部のクラスに持たせるメソッドですが、
簡略化のため、このような書き方をしています。
どなたか、この問題を解決する方法をご教示願えますでしょうか?
よろしくお願いいたします。