2017-02-12 54 views
3

我可以在我的Laravel 5.4的链接项目:本地主机:8888/streaming_statistic /公共上Laravel 5.4例PHPUnit的测试失败,404

我有一个测试:

<?php 

namespace Tests\Feature; 

use Tests\TestCase; 
use Illuminate\Foundation\Testing\WithoutMiddleware; 
use Illuminate\Foundation\Testing\DatabaseMigrations; 
use Illuminate\Foundation\Testing\DatabaseTransactions; 

class ApiTest extends TestCase 
{ 
    public function testBasicTest() 
    { 
     $response = $this->get('/'); 

     $response->assertStatus(200); 
    } 
} 

我运行所有测试命令

./vendor/bin/phpunit 

但是结果是:

PHPUnit 5.7.13 by Sebastian Bergmann and contributors. 

F                 1/1 (100%) 

Time: 222 ms, Memory: 12.25MB 

There was 1 failure: 

1) Tests\Feature\ApiTest::testBasicTest 
Expected status code 200 but received 404. 
Failed asserting that false is true. 

/Applications/MAMP/htdocs/streaming_statistic/vendor/laravel/framework/src/Illuminate/Foundation/Testing/TestResponse.php:56 
/Applications/MAMP/htdocs/streaming_statistic/tests/Feature/ApiTest.php:16 

FAILURES! 
Tests: 1, Assertions: 1, Failures: 1. 

我可以打开这个页面http://localhost:8888/streaming_statistic/public/ 我有一个路线:

Route::get('/', function() { 
    return view('welcome'); 
}); 

什么,我做错了什么? 在laravel中为控制器方法编写测试的正确方法是什么?可能是HTTP测试它不是他们最好的解决方案?

+2

您需要为您的测试设置正确的URL和端口。 –

+0

我可以在哪里配置它们? –

+0

APP_URL = http://127.0.0.1:8888/streaming_statistic/public - 对于测试此env变量是错误的...我将根目录更改为streaming_statistic/public和env至APP_URL = http://127.0.0.1:8888 - 并得到确定(1测试,1断言)! –

回答

6

用于测试这个环境变量是错误的......

APP_URL=http://127.0.0.1:8888/streaming_statistic/public 

我换根Web服务器目录streaming_statistic /公共和env到

APP_URL=http://127.0.0.1:8888 

后,我得到了:

OK (1 test, 1 assertion) 
+0

您可能想要验证测试是否确实通过。这可能是因为在127.0.0.1:8888上它看到了所有目录的列表,而没有真正到达你的应用程序。 –