2017-06-01 13 views
0

Webサイトで実行するphpunitとseleniumを使って作成したテストケースを作成しました。しかし今、同じテストを実行しなければならない第2のウェブサイトがあります。唯一の違いは、ウェブサイトにアクセスするためのURLです。2つ以上のWebサイトでphpunitテストを実行するには

私は、phpunitが動作するたびに異なる値に設定されたSESSION変数を使用しようとしました。各テストケースでは、私はこのセッション変数を参照しますが、それは私のために働いていません。私はこれにどのように対処しますか?私は同じテストケースの2つのバージョンを持つことは望ましくありません。私が試した何

:代わりに、私はあなたがenvironment variablesの使用を作る示唆セッション変数の

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 
    } 

答えて

0

。環境変数を使用すると、プログラムやスクリプトが実行される環境を調整することができます。

また、副作用が少なく、might not even work on the command-loneというセッションもあります。また、環境変数はテストスイート内でより直接的にアクセス可能です。そして、あなたはテストスイートに価値を渡す必要性を満たします。

それでは、例を見てみましょう:

$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 functionTEST_ENVIRONMENT環境変数を設定するために、ここで使用されています。次に、phpunitが実行されると、サブシェルphpunitがPHPスクリプト環境を継承して実行されます。あなたが見ることができるようにあなたのテストでは

、あなたはそのTEST_ENVIRONMENT環境変数にアクセスする必要がある場合、あなたは

getenv("TEST_ENVIRONMENT"); 

または

$_ENV["TEST_ENVIRONMENT"]; 

でそれを行うことができますが起動する必要はありませんセッションなど、アクセスはかなり簡単です。

関連する問題