0

ビルドごとに phpunit と phpundercontrol を使用して RC Selenium を実行しています。

4

2 に答える 2

1

PHPUnit を使用すると、独自のTestListenerを実装できます。カスタム テスト リスナーは、抽象メソッドをPHPUnit_Framework_TestListenerインターフェイスに実装します。具体的には、リスナーは次を実装します。

  • startTestSuite()
  • endTestSuite()
  • startTest()
  • テスト終了()
  • addError()
  • addFailure()
  • addSkippedTest()
  • addIncompleteTest()

TestListner をアタッチすると、これらのメソッドは、対応するイベントがテスト スイートで発生するたびに呼び出されます。これらのメソッドは、これから作成するテスト結果データベースでINSERTUPDATEを実行するように記述されます。

リスナ クラスをスイートにアタッチするのは、タグをphpunit.xml構成ファイルに追加します。例えば:

<phpunit>
  <testsuites>[...]</testsuites>
  <selenium>[...]</selenium>
  <listeners>
    <listener class="Database" 
              file="/usr/loocal/share/pear/PHPUnit/Util/Log/Database.php">
  </listeners>
</phpunit>

それだけです!

実際、PHPUnit には、先ほど説明したリスナー ( PHPUnit_Util_Log_Database ) の動作バージョンと、2 つの異なるデータベース スキーマ定義が既に付属しています。

多くのシステムでは、このクラスは/usr/loocal/share/pear/PHPUnit/Util/Log/Database.phpにあり、スキーマは/usr/loocal/share/pear/PHPUnit/Util/Log/Database/MySQL にあります。 sqlおよび/usr/loocal/share/pear/PHPUnit/Util/Log/Database/SQLite3.sql。使用している DBMS によっては、微調整が必​​要になる場合があります。


ドキュメントの次のセクションを参照してください (2 つのリンクを投稿することはできません:

http://www.phpunit.de/manual/3.4/en/extending-phpunit.html#extending-phpunit.PHPUnit_Framework_TestListener

htp://www.phpunit.de/manual/3.4/en/api.html#api.testresult.tables.testlistener

(StackOverflow では 2 つのリンクを投稿できないため、2 つ目のリンクの HTTP を修正する必要があります)

于 2011-01-21T03:52:28.757 に答える
0

私は同じ問題に取り組んでいます。

数日前にここで関連する質問をしました。

Selenium IDE、Selenium RC、および perl を使用した私の試み。

一般的な戦略:

phpunit の新しいリリースで TAP 出力を生成できます (オプション --tap、--log-tap)。

(TAP は Test Anything Protocol - 標準化された出力形式)

ログファイルを解析して、TAP パーサー オブジェクトからスイート メタデータを取得し、perl を使用してデータベースに挿入します。

于 2010-11-10T15:09:15.680 に答える