2013-01-11 34 views
2

我有一個在php中使用phpUnit進行單元測試的應用程序。問題是我必須在進行測試之前設置環境。例如。我必須設置會話變量,登錄和從遠程服務器獲取數據。所有這些花費很多時間,並且在每個測試功能中重新設置它是不可行的。

我正在尋找一種方法,以便我可以使用相同的瀏覽器會話來運行其中的所有測試。我試圖在網上尋找資源,但找不到任何有用的資源。我寫的代碼是使用相同的瀏覽器會話,同時使用phpUnit使用硒

protected function setUp() 
{ 
    parent::setUp(); 
    $this->setBrowserUrl("http://localhost/devel/"); 
} 

public function start() 
{ 
    parent::start(); 
    $this->open(""); 
    //Setting up the environment here 
} 

public function testFunction() 
{ 
    //A test function 
} 

public function testFunction2() 
{ 
    //Another test function 
} 

但是,這是爲這兩個函數打開瀏覽器實例。有沒有解決這個問題的方法?或者有沒有任何命令行參數,而啓動硒服務器呢?

+0

爲什麼您需要在同一窗口中運行所有測試?測試的要點是您測試了一個自包含的Web應用程序的一部分,對嗎? – qrazi

回答

0

「[我]使用硒使用PHPUnit的單元測試」

不,你不是。您正在使用帶有硒的PHPUnit進行功能測試。 :-)

但由於它可能不是您的最佳利益重新發明輪子說,你想水貂:http://mink.behat.org/

它將繞狂飲,讓你做的基於會話的驗收使用大量的不同測試驅動程序。它有一個無頭瀏覽器的Goutte,可以和Selenium和Sahi以及其他一些人一起工作。另外值得注意的

,根據您的需要,是貝哈特:http://behat.org/

它可以讓你寫的可以變成基於貂皮驗收測試客戶端可讀的測試文檔。

HTH。

相關問題