面白い? それから猫にようこそ。
だから、与えられた:
- 外部テストフレームワークを必要とするPHPで書かれたプロジェクト。 開発者は、変更を行った後、エンドユーザーが以前に見たものと新しいチップを正確に見ることを確認したいと考えています。 また、新機能ではなく、隣接するレポート管理モジュールのUIを大幅に調整しました。
- PHPUnitに基づいて記述されたSelenium Webdriverを介してUIを制御するためのシステムテスト。 つまり、次の2つの欠点があります。
- テスターは、PHP、PHPUnit、WebdriverのAPIを知っている必要があります。 そして同時に、彼だけが読むことができるきれいなコードを書きません。
彼の人生を楽にしましょう:)
- したがって、既存のテストは、それらをサポートすることは暗くて感謝のない作業であるように書かれています。 さらに暗くて恩知らずの状況は、テストが実際に失敗した理由をプログラマがすぐに理解できない場合です。 そして、あなたは時間を費やす必要があります...
- テスターは、PHP、PHPUnit、WebdriverのAPIを知っている必要があります。 そして同時に、彼だけが読むことができるきれいなコードを書きません。
- TeamCityを使用してプロジェクトを自動的にビルドし、すべてのテストを実行します
- FitNesseによって実行される多くのUIテスト。 PHPで記述されたものよりも読みやすく、誰でもFitNesse-wikiを開いてテストを実行できます。 そして、マネージャーでさえ、画面上で何が起こっているかを理解しています:)。 ただし、プロジェクトをビルドするとき、これらのテストは自動的に実行されません。
解決策。
TeamCity BuildrunnerとFitNesseを横断することにより、最後のポイントを決定します。 これはさまざまな方法で行うことができます。FitNesseランナー+ TeamCityバンチを自分で構成するか、簡単な方法で特別に訓練されたプラグインを使用することができます。 すぐに使用できるプラグインは、設定で指定されたパスに従ってFitNesseを起動し、テストを実行し、簡単な統計を表示できます。 一般的には奇跡ですが、次のように動揺します。
- Linuxで実行されるBuildAgentでの起動に問題がある
- FitNesseは、ビルドが開始されるたびに開始されます。 そして、その完了時に削減します。 しかし、時には特定のテストのページに行き、彼の目を見てみたいです:)
したがって、私たちのチームはプラグインを取得し、素晴らしい要件に合わせて完成させ、コミュニティと共有することにしました。 書き換えプラグインはGitHubで入手できます 。
インストールと構成のプロセスについて簡単に説明します。 一般に、元のプラグインのREADMEに記載されているものと似ていますが、BuilAgentの誰かが事前にFitNesseを起動する必要があります。 そして以来 彼は絶えず音を立てて、いつでも入ることができ、好きなテストを手で実行することができます。
- antを使用して、TeamCityサーバーへのフィードを目的としたFitnesse.zipアーカイブにプロジェクトを収集します。
- TeamCityサーバーをプラグインフォルダーのアーカイブにプルします。 そして、サーバーを再起動します。
- TeamCityは、新しいプラグインでBuildAgentを更新する必要があります。 エージェントで何か問題が発生した場合は、再起動します。
- 新しいランナーがTeamCityサーバーに登場しました-Fitnesseランナー。 これで、別のビルドステップを追加できます。 2つのパラメーターで単純に構成されます。
FitNesseホスト -実際、FitNesse wikiを開くことができるアドレス。
テスト名 -実行する必要があるテストのリスト。 テスト名は1行で記述され、区切り文字はセミコロンです。
- BuildAgentで、FitNesseを実行し、BuilAgentが収集するテストをピックアップするように構成します。 私たちの場合、これは-dパラメーターを実行するときに変数$ FITNESSE_ROOTPATHを設定することで解決しました。
java -jar fitnesse-standalone.jar -p 8080 -d ~/BuildAgent/work/branch/test/src/Fitnesse
そして以来 BuildAgentをビルドすると、branch/test/src/Fitnesse
が更新され、FitNesseは常に収集されたブランチのテストを行います。
- すべて、アセンブリを実行できます。
答え。
出口でほぼそのような写真を見ることができます。 これはテスト結果で確認できます。

そして、これはbuilログにあります:

完全な幸福のために、リンクを「リンクのように」機能させることが残っています。これはこの記事で役立ちます。 しかし、これは別の計画の議論です。
FitNesseの利益は何ですか?
まず、FitNesseから入手できるAPIを開発して文書化すると、テスターはPHPコードを書くように要求する必要がなくなります。 彼には単一のツール-Wikiマークアップがあり、テストスクリプトとドキュメントを同時に作成します。 新しいAPIペンが必要な場合、それを記述するのはテスターではなく、開発チームです。 実際にコードにお金を払う:)。
次に、テストページでシステムのドキュメントを直接保持できます。 新しい従業員がこのような知識ベースをより深く掘り下げると便利です。 また、FitNesseテストの記述スタイルは、英語に精通している人にとってもはるかに便利です。 必要に応じて、マネージャーを表示することもできます-「ユーザーVasyaがパスワードvasyapasswordでログインし、メッセージ「PANIC !!」」でアラートを受信し、実際に機能していることを確認します:)。
コミュニティへ。
プラグインを厳しく判断しないでください-それはまだ「若くて経験の浅い」です:)誰かが興味を持っているなら、好きなようにそれを終了/追加することをheしないでください。 そして誰もが恩恵を受けます。