2009-03-13 7 views
1

当社のX11 GUIアプリケーションの受け入れテストに取り組んでいるチームがおり、シナリオを実行するだけでなくGUIを駆動する怪物の受け入れテストフレームワークを作成しました。私のPerl書き換えキュウリを見直すことはできますか?

フレームワークはPerl 5を使用して記述されており、シナリオファイルはアクセプタンステストよりも非常に複雑なPerlプログラム(手続き型プログラミングの長さが数千行)に似ています。

最近、私はRuby's Cucumberを学びました。一般的にRubyはかなり長い時間使用されていました。しかし残念ながら、Rubyを知りたくない人はRubyを知らないので、Perlを置き換えることはできません。また、このような中断を望んでいないと確信しています。

ルビーのキュウリをもっと近づけるために、私はPerl 5を使って書き直しました。残念なことに、私は本当にPerlのプログラマーではなく、コードレビューをして、Perlとキュウリ。

こんにちはPerl/Cucumber StackOverflowユーザー - 私はこの「オープンソース」を作成してPerlのキュウリを再作成しようとしてください!私はあなたのコメントを聞きたいと思いますし、受け入れられる助けを受け入れます。

最小限のソースコードはここにある:

http://github.com/kesor/p5-cucumber 

ご清聴ありがとうございました。キュウリに精通していない方のため

- この一つの小さな小さなページを見てみることをひとつの小さな瞬間をしてください。http://cukes.info/

+2

あなたがPeruの人々にキュウリが何であるか教えてくれれば助けになります。 – innaM

+0

BDD /キュウリユーザーは、このようなカスタマイズされたコンバータ(実際の例ではp5-cucumber.pl)を使用して、定型化されたプレーンテキストのシナリオをテストコードに変換しますか? – spazm

+0

私はすべてのgithubコードを読みました。かなり安定しています。私はパーサーに興味を持っています。 – spazm

答えて

2

あなたは キュウリの私のPerlの書き換えを確認することはできますか?

回答:はい。

あなたが投稿したgithubコードを読んだことがあります。それはかなり良い見えます。

Parser :: Parser.yp :: ERRORの次のスニペットが不思議です。なぜあなたは "if(){}"より "and do {}"を使うのを選んだのですか?スタイル?スコープ?他の?

exists $parser->YYData->{ERRMSG} 
    and do { 
    print $parser->YYData->{ERRMSG}; 
    delete $parser->YYData->{ERRMSG}; 
    return; 
    }; 

私はキュウリを使用しておらず、まだ使用モデルの周りを頭で覆そうとしています。誰かが電卓の例を確認/実行するにはどうすればよいですか?

あなたのコードをCPANにリリースする予定があるならば、このgitソースをインストール可能なtarballにバンドルします。 ExtUtils :: MakeMaker、Module :: Buildなどのモジュールインストールツールの1つを含めることができます。私は最近Dist::Zillaを使い始めました。本当に満足しています。それは私の最初のcpanモジュールをリリースする活性化のエネルギーを私に持ってきました。

20ディスト::ジーラの第二のツアー:

  1. ダウンロードおよびディスト:: Zillaを とその要件(それが唯一のツール開発者として多くの が、あります)
  2. distのを作成してインストールします。あなたのパッケージの最 レベル( 'dzil新しいmypackageと')
  3. でiniファイル、テストするために、(ビルドおよびテスト)、 ( ' リリースdzil'、 'dzilビルド' 'テストdzil' 実行 、およびビルド、テスト、リリース)

Dist::Zilla::Tutorial

+0

入力していただきありがとうございます。最後に更新してからしばらくお待ちください。パーサの使い方については、私がいくつかの例からコピーしたことを確かめています。なぜこのようにしたのか、本当に覚えていないからです。 私は非常に基本的なパーサーを持つ2つの枝、マスター、さらに多くの機能を可能にするより洗練されたもので実験的に覚えています。サンプルを実行するのはちょうどその "p5-cucumber example_dir"です。そこにはシナリオ+テストコードが格納されています。 – Evgeny

2

Test::A8Nはあなたの条件に合わせていますか?

CPANに他の多くのTest::モジュールがあります。

+0

それはいいようですが、それは本当にキュウリではありません。そして、私はまだTest :: modulesをコードで使用しています...実際のストーリー(単純な英語で書かれています)からテストコードを分離するだけです。テストコードは、実際に条件を「テスト」したい任意のフレームワークを使用できます。 – Evgeny

+0

Test :: A8Nは、Ward CunninghamのFIT(http://fit.c2.com/)に基づいています。 CPANにはTest :: FIT *モジュールがあり、Test :: FITesqueはTest :: A8Nが上に構築されたものです。キュウリはTest :: A8N/FITができることのサブセットに見えるので、p5-キュウリの基礎として使うことができます。 – draegtun

+0

実際、キュウリは、FITのテーブル表記法とより自然な自然言語表記の両方をサポートしているため、FITができることのスーパーセットです。 – Evgeny

5

Perlmonksに良いヘルプが表示される場合があります。そのサイトはこの種の投稿に対応していますが、Stackoverflowは直接的かつ回答可能な質問の詳細です。

幸運、:)

4

のPerlでのキュウリのかなり充実実装はTest::BDD::Cucumberの形でありますを参照してください。