タグ

関連タグで絞り込む (1)

タグの絞り込みを解除

perlとテストに関するKinjouJのブックマーク (9)

  • Test::Mocha::PhantomJSを書いた - kazuhoのメモ置き場

    Test::Mocha::PhantomJSというPerlモジュールをリリースしました。 一言でいうと、Perlで書いたサーバサイドロジックを、PhantomJS上で動くMochaのテストコードで検証するためのモジュールです。 具体的な手順としては、 t/ 以下に次のようなテストコードを書いて Mochaのテストが含まれるHTMLを返すようにする の2点さえやってしまえば、あとはmake testするだけで、PhantomJSのヘッドレスウェブブラウザ上でテストが動いて集計されます。 use Test::Mocha::PhantomJS; test_mocha_phantomjs( server => sub { my $port = shift; # サーバを localhost:$port で起動 ... } ); はい。End-to-end テストを書く際に便利ですね。 実際のテスト

    Test::Mocha::PhantomJSを書いた - kazuhoのメモ置き場
  • おそらくはそれさえも平凡な日々: Test::mysqldのcopy_data_fromでテストが更に捗る話

    少し前ですがTest::mysqld 0.17からは copy_data_fromというオプションが加わっています。 これは、Test::mysqld起動時にコピー元のdataディレクトリを指定できるもので MySQLの起動時間を節約することができます。テスト開始時にDBに大量のデータを 入れておきたい場合に特に有効です。 特にゲームなどの場合は、大量のマスタデータもコードの一部と言えるので、ちゃんと 全部流し込んでからテストを実施したいという要件があるので重宝します。 さて、そのdataディレクトリをどうやって作ればよいかという話になるのですが、 それも、Test::mysqldに事前に作らせてどこかに配置しておけば良いでしょう。 手順としては例えば以下のようになります。 ‘tmp/test_mysqld_data’ をdatadirにしてTest::mysqldを起動 DDLとマスタデ

  • Harriet ー テストのときつかうにデーモンの取扱を簡単にするためのフレームワーク - tokuhirom's blog

    https://github.com/tokuhirom/Harriet/https://metacpan.org/module/TOKUHIROM/Harriet-0.01/lib/Harriet.pmテストのときにつかう mysqld, memcached, stf, groonga あたりのデーモンを、.t 単位で起動していては遅くてかなわない。かといって、あらかじめ起動させておくというのも。。 というわけで prove のプラグインとしてよしなにする、みたいなのをがんばってかく、というような試みがおこなわれてきたわけですが、どうもめんどくさい。 なんか適当にやったらうまくうごく、っていうかんじのカジュアルなツールがほしいな、なんておもったりするわけですよ そこで、Harriet ってのをつくってみました。 なんかこう、t/harriet/mysqld.pl っていうファイル名でこん

  • DB 処理における Fixture テストの勧め - Hokkaido.pm #1

    DB 処理における Fixture テストの勧め 自己紹介 Toru Yamaguchi <zigorou@cpan.org> id:ZIGOROu (@zigorou) 株式会社ディー・エヌ・エー ソーシャルメディア事業部プラットフォーム統括部システムグループエンジニア Japan Perl Association 理事 今回のお題 昨日は割と概念的なお話ばかりだったので、今回は具体的な話メインで行きたいと思います。 やはりプログラミングにはバグがつきもので、それを防ぐにはテストを書くしかないですよね、と言う事でテストにまつわるお話です。 とは言っても今日のこのイベントに来ている人は Test::More でのテストなどは書いた事がある人が多いと思うので、Test::More の説明は割愛します。 まずは Test::mysqld の使い方 とりあえず、手元の環境に mysql をイン

  • 自動テストのためにメールサーバを一時的に起動する | シーズクリエイターズブログ

    自動テストのためにメールサーバを一時的に起動する Posted 2012年12月6日 by uchiyama & filed under プログラミング. メール体を組み立てるロジックとメール送信部分が結合しているようなシステムを自動テストする際に、 一時的に立ち上がるメールサーバが欲しくなります。 また、メールサーバにどんなメールが届くのかをチェックできると嬉しいですね。 Test::TCPとNet::Server::Mail::SMTPを使えば、これを実現できます。 Test::TCPは、開いているポートをスキャンして、サーバ側のコードとクライアント側のコードを実行してくれるモジュールです。 Net::Server::Mail::SMTPは、メールサーバを簡単に書けるようにしてくれるモジュールです。各SMTPコマンドに対して処理を書くことができます。 この2つのモジュールを組み

  • Test::TCPでgearman workerのテストを書く - Kentaro Kuribayashi's blog

    この項、必ず追記を参照のこと。 Gearmanを使ったジョブの処理を書いていて、 gearmandを起動 workerプロセスを起動 clientがジョブを投げ、先に起動したworkerがそれを処理 返ってきた結果を検証 テスト終了時には、gearmand/workerをシャットダウン ってのを全部いっぺんにできないかなーってんで、Test::TCPでやってみました。workerプロセスはlistenする必要がないので、 no warnings 'redefine'; local *Test::TCP::wait_port = sub {}; とかしちゃってるところが「ヒャー」って感じですが、まあいいかな、と。。。他にいい方法があったら教えてください!!1 use strict; use warnings; use Test::TCP; use Test::More; use Gearma

    Test::TCPでgearman workerのテストを書く - Kentaro Kuribayashi's blog
  • テストの前とかあとにフックするとかの件 - tokuhirom's blog

    http://mt.endeworks.jp/d-6/2010/10/miextendsmaketest.html について。 ちょっと遅レスですが、以下のようなコードを Module::Install::TestTarget で処理するという話なんですが replace_default_make_test includes => [ "modules/common/lib" ], env => { MYAPP_CONFIG => 't/config.pl' }, before_run_scripts => [ 't/start_daemons.pl', 't/load_fixtures.pl' ], ; Module::Build だと inc/MyBuilder.pm を以下のようにかいておいて package inc::MyBuilder; use strict; use warni

  • It's just same as dust ahead of a wind: TDD Advent Calendar jp: 2011 day 3 : Perl でのテスト自動実行 & 通知環境

    11/12/03 TDD Advent Calendar jp: 2011 day 3 : Perl でのテスト自動実行 & 通知環境 TDD Advent Calendar jp: 2011 : ATND の 3 日目担当 shishi です。 私より前の日程の方達見て業界に名だたるお二人を見てビビり、後ろの日程のビッグネームな方達を見てまたビビり、と「前門の虎、後門の狼」のような心持ちですが、自分の担当をしっかりやっていきたいと思います! Perl での自動テストはテスト自体はしやすい言語であるにも関わらず、資料が多くはないように思います。TDD だとなおさらです。なので、テストの実行が楽な環境をつくるところからの説明があると良いのではと思いました。 そこで、Perl での TDD をしやすいように、自動でテストを実行する環境について書きたいと思います。 Perl での自動的

  • use Test::Attribute::AutoLevel - Articles Advent Calendar 2011 Test

    こんにちは、カワ(・∀・)イイ!!アイコンで有名なnekokakだよ。 今日はカワ(・∀・)イイ!!僕がつくったTest::Attribute::AutoLevelという イカしたモジュールを紹介してみたいと思うんだ。 僕はテストを書く時にテスト用の便利関数を定義することがよくあるんだ。 そのテスト関数の中でTest::Moreのテスト関数を実行するんだけど、 そこでテストがコケたときに表示されるエラーメッセージがおかしなことになるんだ。 例えば use strict; use warnings; use Test::More; sub test_cute_icon { my $icon = shift; is $icon->{state}, 'cute'; } { package My::Icon; sub new { my ($class, $opts) = @_; bless $op

    use Test::Attribute::AutoLevel - Articles Advent Calendar 2011 Test
  • 1