1

開発環境では、ビルド/テストジョブを実行し、結果を報告することでコードチェックインに応答する継続的インテグレーションサービス(TeamCity)を実行します。ジョブの進行中に、これまでに実行された単体テストの数、失敗したユニットテストの数などを簡単に確認できます。

私の自動テストチームは、RationalFunctionalTesterで開発されたUIテストを提供しています。これらのテストをソース管理システムから抽出し、コンパイルし、コマンドラインから実行することは、すべて非常に簡単な作業のようです。

私が見つけられなかったのは、テスト結果を自動的に報告する方法です。たとえば、リスナー用のフックや、送信されるメッセージをカスタマイズする方法はないようです。

これまでの調査から、私の唯一の選択肢は、(a)テストが終了するまで待ってから、(b)RFTが生成するHTMLレポートを解析することであるという結論に達しました。

誰かがそれよりも良い答えを持っていますか?

4

2 に答える 2

1

同様の目的で使用した回避策は次のとおりです。

  1. onTerminateコールバックメソッドを上書きするヘルパースーパークラスを作成し、そこにログ解析ロジックを実装します。
  2. テストスクリプトのヘルパースーパークラスを、ステップ1で作成したヘルパースーパークラスに変更します。
  3. RFT CLIを使用して、継続的インテグレーションコードでスクリプトを呼び出します。
于 2011-03-28T23:42:33.923 に答える
0

@ eric2323223を拡張すると、onTerminateオーバーライドで、TeamCityのビルドスクリプトインタラクション機能を使用して、RFTの合格/不合格ステータスをTeamCityにロールアップできます。TeamCityがそれらを取得できるように、コマンドラインに送信されるこれらのTeamCity固有のメッセージが必要です。

##teamcity[testStarted name='test1']
##teamcity[testFailed name='test1' message='failure message' details='message and stack trace']
##teamcity[testFinished name='test1']

##teamcity[testStarted name='test2']
##teamcity[testFailed type='comparisonFailure' name='test2' message='failure message' details='message and stack trace' expected='expected value' actual='actual value']
##teamcity[testFinished name='test2']
于 2011-04-05T13:13:41.147 に答える