2016-12-08 11 views
1

私はテストしたいと思う複数の類似したウェブサイトを持っています。ここでは、現在のアプローチがあります:これはうまく動作しますが、一つの問題があり コードセッションにジェネリックテストケースを含める

を必要に応じて、既存のcodeceptionプロジェクト

  • 変数
  • を調整

    1. クローンは、いくつかの追加の特定のテストケースを追加します。一般的なテストケースが変更された場合は、すべてのプロジェクトに参加して変更を加える必要があります。ですから、私がむしろ目にするのは、すべてのプロジェクトに汎用のトップレベルのテストケースを組み込み、それをパラメータで呼び出す方法です。

      私は単純なinclude()ステートメントを試しましたが、残念ながらこれは機能しません。そして私はこれをどのように達成できるのか?

      ここに私の最初の試みのいくつかのコード:

      /home/tests/site1/tests/acceptance/isOnlineCept.php

      include("../1generic_tests/isonline.php"); 
      $I = new AcceptanceTester($scenario); 
      $I->am('user'); 
      $I->wantTo('see the content of the site'); 
      $I->lookForwardTo('see the homepage'); 
      $I->amOnPage('/'); 
      $I->see("Tech, Geek and Rock'n'Roll"); 
      

      私には、ファイルがこの

      $I = new AcceptanceTester($scenario); 
      $I->am('user'); 
      $I->wantTo('see the content of the site'); 
      $I->lookForwardTo('see the homepage'); 
      $I->amOnPage('/'); 
      $I->see('something else'); 
      
      のように見えます

      残念ながら、このエラーで失敗します。

      [PHPUnit_Framework_Exception] Undefined index: class 
      

      これは正しい方法ではないかもしれませんが、もっと良い方法はありますか?

  • +0

    あなたの質問が現在どのように記述されているかについて何もないので、うまくいかないコードを入力してください。 – jacksonecac

    +0

    いくつかのコードを追加しました – rapsli

    +0

    なぜページオブジェクトを使用せず、ページオブジェクトでその関数を宣言してください。それをパラメータで呼び出します。 –

    答えて

    1

    これにはPage Objectを使用できます。

    すべてのセレクタを定義できるPage Objectを使用して1つのConstants.phpファイルを作成します。

    他のファイルを1つ作成して、すべての一般的な操作を実行できるようにします。例えば。 Settings.phpファイルを使用して、必要に応じてすべてのメソッドを設定できます。パラメータでも定義できます。

    宣言されたアンダーページdirのセレクタおよび/またはメソッドにアクセスするには、次の行を使用してアクセスできます。

    ページ\ Constants as ConstantsPage;

    は、特定のファイル

    FileNamePage :: $ selectorNameから任意のセレクタにアクセスするには、

    すべてのメソッドにアクセスするには、まずオブジェクトを作成してからメソッドを呼び出します。 など。

    $設定=新しいSettingsPage($ I)

    $ [設定]> [methodNameの();

    メソッドと/ prセレクタを同じファイルで呼び出す。

    self :: selectorName;

    self :: methodName();

    希望すると便利です。

    関連する問題