2013-05-15 83 views
1

我試圖在Laravel內開始編寫測試。 我認爲編寫我自己的基本TestCase是個好習慣,它運行測試設置(例如遷移)。自動加載Laravel測試

<?php 

class TestCase extends PHPUnit_Framework_TestCase { 
    public function setUp() 
    { 
     parent::setUp(); 

     // just for example: 
     DB::table('categories')->first(); 
    } 

} 

在那之後,我想繼承上面創建的一個我所有的TestCase

<?php 

class TestExample extends TestCase { 
    public function testSomethingIsTrue() 
    { 
     $this->assertTrue(true);  
    } 
} 

所以現在我有三個問題:

  1. 我的TestCase拋出錯誤,沒有找到類DB。爲什麼heck是測試不自動加載Laravel框架類?

  2. PHPUnit告訴我(有警告)我的TestCase不包含任何測試,但這是我對這個類的疑似行爲,我該如何避免此消息?

  3. 我的TestExample找不到類TestCase。

你能幫我理解嗎?!我如何配置測試特定的自動加載?

更新: 答案1:因爲我在NetBeans IDE中運行測試,所以需要配置!設置正確的phpunit.xml幫助

+0

您標記了Laravel 3,但'Artisan'是Laravel 4類,混合? – Usman

+0

好的,這絕對可以...... :) – skorzinetzki

+0

我剛剛嘗試過另一個Laravel類:DB。這個班也沒有找到。所以問題仍然是:我如何在測試中使用Laravel類? – skorzinetzki

回答

2

正如我們的討論中所揭示的那樣,當您使用IDE(NetBeans,PhpStrom等)運行PHPUnit測試時,必須確保您的IDE已正確配置以趕上phpunit.xml

+0

只是最後一個問題(用於驗證):生成一個測試用例,運行一個基本的設置,這應該是一個抽象類,因爲它不能由phpunit運行。然後我的測試擴展了這個,並且應該在設置中調用它的父設置方法。那麼我需要一個包含該類的php文件的要求,以便找到該類?!這是我的方式,現在我解決了,但它是正確的方式?謝謝 – skorzinetzki

+0

在Laravel 4中已經有一個TestCase類,它是自動加載的,爲什麼你需要再次? – Usman

+0

,因爲我現在在laravel 3上:) – skorzinetzki