[英]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.