1
我是新的phpunit測試,做了一個非常簡單的測試尋找狀態代碼。phpunit測試通過,在瀏覽器頁面加載失敗在Symfony 2
當我運行該測試通過:
bin\phpunit -c app src\AppBundle\Tests\Controller\StarLinX\TravelControllerTest.php
PHPUnit 4.6.10 by Sebastian Bergmann and contributors.
Configuration read from C:\PhpstormProjects\dir\app\phpunit.xml.dist
.
Time: 6.03 seconds, Memory: 20.00Mb
OK (1 test, 1 assertion)
但是當我加載頁面在瀏覽器中,拋出一個異常渲染,狀態碼樹枝文件500
我想,也許這是緩存問題,所以我清除了緩存--env = dev,prod和測試。
如何解決此錯誤?
這是我的測試文件:
namespace AppBundle\Tests\Controller\StarLinX;
use Symfony\Bundle\FrameworkBundle\Test\WebTestCase;
class TravelControllerTest extends WebTestCase {
public function testGET() {
// Create a new client to browse the application
$client = static::createClient();
// get the page
$crawler = $client->request('GET', '/travel/aaaaa');
$this->assertEquals(200, $client->getResponse()->getStatusCode(), "Unexpected HTTP status code for GET /travel/aaaaa");
}
}
這是在開發環境中運行時所引發的錯誤:
An exception has been thrown during the rendering of a template ("Notice: Array to string conversion")
那麼一點點更多的分析後,我發現了錯誤大約在{{ weatherInfo }}
這應該是{{ weatherInfo.now }}
。這在運行開發環境時會引發錯誤。在生產中,樹枝只顯示Array
。
這是正常的行爲嗎?
您添加的測試的唯一問題是,頁面仍然會通過。爲什麼twig在dev中爲數組拋出錯誤,但不在prod中? – ScottGutman
@ScottGutman *您添加的測試唯一的問題是,頁面仍然會通過*如果出現錯誤,最後2個斷言應該失敗。 –
@ScottGutman在prod中,Twig隱藏錯誤,因爲調試模式已啓用(最好隱藏異常而不是*破壞頁面)。但是你應該在日誌文件'app/logs/prod.log'中看到錯誤。 –