簡體   English   中英

我如何在超過1個網站上執行phpunit測試

[英]How can i execute phpunit tests on more than 1 website

我創建了一組用phpunit和Selenium創建的測試用例,並在網站上執行。 但是現在,有一個第二個網站,我必須對其執行相同的測試。 唯一的區別是訪問網站的網址。

我嘗試使用SESSION變量,每次phpunit運行時將其設置為不同的值。 在每個測試用例中,我都將引用此SESSION變量,但它對我不起作用。 我該如何處理? 我不想有2個相同測試用例的版本。

我試過的

session_start();
    $environments = array('www.test1.com', 'www.test2.com');
    $arrlength = count($environments);

    for($x = 0; $x < $arrlength; $x++) {
        $_SESSION['TEST_ENVIRONMENT'] = $environments[$x]; // Set session variable = environment
        phpunit -c phpunit.xml // xml file containing the testcases
        unset($_SESSION['TEST_ENVIRONMENT']); //Unset only TEST_ENVIRONMENT index in session variable
    }

建議您使用環境變量來代替會話變量 環境變量使您可以定制運行程序或腳本的環境。

與會話相比,它們的副作用要小一些,而會話可能甚至無法在命令行上運行 此外,環境變量可以在測試套件中更直接地訪問。 他們滿足了您將價值傳遞給測試套件的需求。

因此,讓我們看一個例子:

$environments = array('www.test1.com', 'www.test2.com');
foreach ($environments as $environment) {
    putenv(sprintf("TEST_ENVIRONMENT=%s", $environment));
    passthru('phpunit -c phpunit.xml');
}

putenv PHP函數在這里用來設置TEST_ENVIRONMENT環境變量。 然后當執行phpunit時,在已繼承PHP腳本環境的情況下執行子外殼phpunit。

在測試中,當您需要訪問該TEST_ENVIRONMENT環境變量時,可以使用

getenv("TEST_ENVIRONMENT");

要么

$_ENV["TEST_ENVIRONMENT"];

如您所見,無需啟動會話等,訪問非常簡單。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM