2

phpUnit を使用した単体テストにセレンを使用している php で作成されたアプリケーションがあります。問題は、テストに行く前に環境を設定しなければならないことです。たとえば。セッション変数を設定し、ログインして、リモート サーバーからデータを取得する必要があります。これには多くの時間がかかり、すべてのテスト機能でこれを再設定することは現実的ではありません。

同じブラウザ セッションを使用してすべてのテストを実行できる方法を探しています。オンラインでリソースを探してみましたが、これに関する適切なソースが見つかりませんでした。私が書いたコードは

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
}

ただし、これは両方の機能のブラウザー インスタンスを開いています。これに対する回避策はありますか?または、このためにセレンサーバーを起動する際にコマンドラインパラメーターはありますか?

4

2 に答える 2

0

質問はすでに回答済みです。受け入れられない答えは私のために仕事をしました。

@see関数ごとに新しいブラウザ ウィンドウを実行せずに PHPUnit Selenium テストを実行するにはどうすればよいですか?

于 2015-01-12T10:28:53.393 に答える
0

「[私は] phpUnit を使用した単体テストにセレンを使用しています」

いいえ、そうではありません。機能テストのためにセレンでPHPUnitを使用しています。:-)

しかし、その車輪を再発明することはおそらくあなたの最善の利益ではないので、Mink が必要です: http://mink.behat.org/

Guzzle をラップし、さまざまなドライバーを使用してセッションベースの受け入れテストを実行できます。ヘッドレス ブラウザ用の Goutte があり、Selenium や Sahi など、さまざまなブラウザと連携できます。

また、必要に応じて、Behat: http://behat.org/にも注目してください。

Mink ベースの受け入れテストに変換できる、クライアントが読み取り可能なテスト ドキュメントを作成できます。

HTH。

于 2013-08-18T02:20:58.080 に答える