タグ

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

  • Test2::Suiteを使ってテストを書く - kichijojipm’s blog

    吉祥寺.pmは一応(?)Perlのイベントなので、たまにはPerlのことを書いてみます。 Test2モジュール Perlのテスティングフレームワークと言えばTest::Moreがスタンダードですが、今リリースされているTest::More v1.3以降では内部構造が全て作り直されていて、Test2というモジュールがベースになっています。 Test2モジュールでは、テストの結果やメッセージが全て「イベント」という形で取り出せるようになっていて、テストモジュールの作者は従来より確実にテストができるようになっています。 詳細は割愛しますが、従来のTest::Moreではテストモジュールのテストが難しい、という課題を解決するためにTest2モジュールは作られました。 Test2::Suiteモジュール さて、Test::Moreの中身はTest2モジュールを使って書き直されていますが、後方互換性を

    Test2::Suiteを使ってテストを書く - kichijojipm’s blog
  • テストにコケる度にシーザーが死ぬ仕組みを作りました - その手の平は尻もつかめるさ

    タイトルは釣りです。 App::WithSound をリリース致しました。 https://github.com/moznion/App--WithSound https://metacpan.org/module/MOZNION/App-WithSound-v1.0.2/with-sound (2013.03.06 追記) App::WithSound はv1.1.0 にバージョンアップしました。 コマンドの成功・失敗時だけでなく、コマンドの実行中にも音声を再生出来るようになっています。 https://metacpan.org/module/MOZNION/App-WithSound-v1.1.0/with-sound (追記ここまで) App::WithSound? コマンドが成功するか失敗するかによって、その結果に対応した音声が流れるアプリケーションです。 まず、このモジュールはm

    テストにコケる度にシーザーが死ぬ仕組みを作りました - その手の平は尻もつかめるさ
  • Go言語でPerlのテストを早くする

    Test::mysqld::Multiというモジュールを書いてみたみたいな涙ぐましい努力により5分で終わるようになったテストですが、 プロジェクトのコードも増えて人も増えた影響で、 テスト時間が約7分まで伸び、テストのキューに10個近く並んで順番待ちさせられるという状況になってしまいした。 この状況を解決すべく go-prove というものを書いてみたので、そのご紹介です。 proveが遅い理由 proveがテストの結果を読むところがブロッキングI/Oになっているらしく、そのせいで遅くなっているらしいです。 Perl-Toolchain-Gang/Test-Harness#30 実際に結果読んでいるところはこの辺ですかね。 selectとか使っていてなるべくブロッキングしないような作りにはなっていそうですが、どこかでブロッキングしてしまっているようです。 今のプロジェクトだと32コアのCP

  • Perlでテストがこけて泣きそうなときのTIPS

    Perl 書いてりゃ Test::More でテスト書きまくると思うのですが、Test::More っていうか、まあ別に Test::More だけがそうというわけでもないのですが、テストこけたときのケアが十分じゃないなと思うときがけっこうあります。 開発過程で書いてるコードというのは、いつもいつも確信を持って書いているわけではないわけで、それでなくてもうっかり間違うときもあり、せっかくテスト書いているのに何だかよくわからない理由でこけてパスできなくて時間を浪費してしまったりが日常になってたりしませんか? そういうのを繰り返しているとやがてテスト嫌いになりテスト書かなくなって番コードにデバッグコードが入り乱れ、リファクタもどんどん不可能になって小回り効かないままプロジェクトが失敗して彼女に振られてしまうわけですね。困ります。 note diag explain Test::More には

    Perlでテストがこけて泣きそうなときのTIPS
  • ドキュメントとテストコードつきのPerlスクリプトを書く方法 - kazuhoのメモ置き場

    Re http://d.hatena.ne.jp/perlcodesample/20091130/1258979624, http://mt.endeworks.jp/d-6/2009/12/scriptsubimport.html スクリプトとコードとテストを単一のファイルにまとめたい*1という需要が、かねて自分の中であったので教えを請うた結果、以下のような感じで書けばいいことがわかった。 #! /usr/bin/perl use modules...; my $global = ...; sub foo { ... } sub bar { ... } run_tests() if $ENV{HARNESS_ACTIVE}; # メインのコード foo(); bar(); ... sub run_tests { ... exit; } __END__ =head1 NAME my_scr

    ドキュメントとテストコードつきのPerlスクリプトを書く方法 - kazuhoのメモ置き場
  • #10 2012年に作ったものを振り返りつつProcletマジ便利 - KAYAC Engineers' Blog

    2012年も残すところあと20日ほどとなりましたが皆様いかがお過ごしでしょうか。@fujiwara です。 このエントリは tech.kayac.com Advent Calendar 2012 10日目の記事です。 テーマが「私の中のマイイノベーション 2012」ということで、まずこの1年に作ったものを自分の blog エントリから振り返ってみますと… Perl から Fluentd にログ出力 - Fluent::Logger リリース 今年一番話題になったミドルウェアといえば fluentd でしょうか。その fluentd に Perl からログを出力するためのモジュールです Parallel::Benchmark というモジュールを書きました 並列にプロセスを起動して負荷を掛けるベンチマークを簡単に作るためのフレームワークです。弊社の主にソーシャルゲーム案件で、リリース前の負荷テ

    #10 2012年に作ったものを振り返りつつProcletマジ便利 - KAYAC Engineers' Blog
  • prove についてのおさらい - Articles Advent Calendar 2011 Test

    はじめに 忘年会シーズンまっただ中で皆さんは毎日お酒を飲んでいることでしょうが、僕は友達が少ないため忘年会とか全然無いので財布はまだホットな状態なんですが、なぜ僕の妹は小鳩ちゃんじゃないんだっていうかそもそも妹いないしもう死ぬって感じの xaicron です。こんにちは。 そろそろ prove について簡単に説明しときますよっと。 prove のよく使うオプション prove にはいっぱいオプションがあるんですが、ここではよく使いそうなやつをピックアップして紹介しちゃいますよ! -v, --verbose # いっぱい出力する -l, --lib # lib を INC についかする perl -Ilib 相当 -b, --blib # blib/lib とか blib/arch を INC につかする -Mblib 相当 -c, --color # カラフルになる! MSWin32 だと

    prove についてのおさらい - Articles Advent Calendar 2011 Test
  • Testing Web Application 2011秋 - tokuhirom's blog

    とにかく楽に、お気軽に。お気軽にテストを追加できて、お気軽にテストを実行できる。というのがなによりも重要です。 追加しようとおもったときに「どう追加したらいいかわからない」という状況になりがちなので、あらかじめいろいろな構成要素ごとにテストをひととおりかいてみるというのも重要だとおもいます。O/R Mapper のクラスのテストとか、model のテストとか、コントローラのテストとか、JSON API のテストとか。。 ExtUtils::MakeMaker でテストをうごかさないExtUtils::MakeMaker を素でつかうと blib/ とかつかってきてうざいので、Makefile.PL に以下のような hack をほどこしてあります。ウェブアプリケーションで blib/ とかにコピーする必要ないですよね。実運用でも blib/ でうごかさないし、インストールもしませんし。 #

  • Test::Attribute::AutoLevel released - blog.nekokak.org

    http://blog.nekokak.org/show?guid=6JbK6Erh4BGSM4iYghOgLw こちらでかいたTest::Functionですが @kamipoさんからパッチもらったりして微調整した後renameしてreleaseしました。 リリース名はTest::Attribute::AutoLevelです。 use Test::More; use Test::Attribute::AutoLevel; sub test_fail : AutoLevel { fail 'oops'; } test_faile(); done_testing;などとします。 attribute嫌いな人もいますが、個人的には嫌いではないです。 ついでにTengとDBIx::Skinnyもリリースしました。

  • にひりずむ::しんぷる - local $Test::Builder::Level = $Test::Builder::Level + 1 するのに飽きたので Test::Level 書いた

    一連のテストを関数にして実行するのはよくあると思うんですが、その時にエラーが発生した箇所を正確に知るには、$Test::Builder::Level っていうのをインクリしてやらなきゃいけません。 例えば、以下のようなテストがあったとします。 1| use Test::More; 2| 3| sub some_test { 4| my $input = shift; 5| ok $input % 2 == 0, 'even number'; 6| } 7| 8| some_test(1); 9| some_test(2); 10| some_test(3); 11| 12| done_testing; わかりやすさのために行数を書いてみました。 これを実行した結果は以下のようになります。 not ok 1 - even number # Failed test 'even number'

  • Five Test::More features you might not be using yet

    I’ve been using Test::More for so long that I sometimes forget about new features that have been added in the last couple years. If you’re like me and would like a refresher, here’s a list of five useful features that you might want to start using. Unless otherwise noted, you will need at least version 0.88 of Test::More. 1. done_testing instead of no_plan 🔗︎ If you don’t know how many tests you

    Five Test::More features you might not be using yet
  • はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知

    はてなグループの終了日を2020年1月31日(金)に決定しました 以下のエントリの通り、今年末を目処にはてなグループを終了予定である旨をお知らせしておりました。 2019年末を目処に、はてなグループの提供を終了する予定です - はてなグループ日記 このたび、正式に終了日を決定いたしましたので、以下の通りご確認ください。 終了日: 2020年1月31日(金) エクスポート希望申請期限:2020年1月31日(金) 終了日以降は、はてなグループの閲覧および投稿は行えません。日記のエクスポートが必要な方は以下の記事にしたがって手続きをしてください。 はてなグループに投稿された日記データのエクスポートについて - はてなグループ日記 ご利用のみなさまにはご迷惑をおかけいたしますが、どうぞよろしくお願いいたします。 2020-06-25 追記 はてなグループ日記のエクスポートデータは2020年2月28

    はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知
  • 私は何故Perlを続けたのか | taro-nishinoの日記 | スラド

    私は以前、Jonathan Rockway氏の"何故、私はPerlを続けるのか"を紹介したことがありました。このエッセイの原題は勿論"Why I stick with Perl"です。ところが、最近Jeffrey Kegler氏がよく似た題名で"Why I stuck with Perl"を書いております。題名の違いは、現在形か過去形の違いだけですが、視点は全然違います。前者はモジュールの再利用の視点からCPANを見ており、後者は総合テスト環境(つまり、cpantestersのこと)の視点からCPANを論じています。 他言語の人が分かっていないのは、CPANをただのモジュール格納庫としてしか見ていないことです。cpantestersのことを全然分かっていないのです。テストするのみならず、モジュール作者がテスターにコンタクトすれば、もっと詳細なデータや、それどころかもうパッチすら用意している

  • Perl 以外の言語でかかれたTCPサーバーをTest::TCPでテストする - tokuhirom's blog

    Test::TCP の中で exec 発行すれば、groonga だろうと KT だろうと memcached だろうと、サーバープロセスのテストは簡単にできるのであって、サーバーごとにモジュールにする必要はない。以下は、groonga をテストする例。 Test::TCP は、さまざまなTCPサーバーのテストにつかわれており、さまざまな BK をふくんだ実装となっていて、これを再発明しようとすると、意外とめんどくさかったりするので、素直につかうとよいです。 use strict; use warnings; use utf8; use Test::More; use Test::TCP 1.08; use File::Temp (); use File::Which; my $bin = scalar which 'groonga'; plan skip_all => 'groonga

  • Why Don't You Do Your Test - Fukuoka Perl Workshop #18

    Editor's Notes\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n

    Why Don't You Do Your Test - Fukuoka Perl Workshop #18
  • Kansai.pm第13回ミーティングで発表しました「HudsonでPerlプロジェクトの継続テスト」 - Kentaro Kuribayashi's blog

    Kansai.pm #13で、「HudsonでPerlプロジェクトの継続テスト」というお題で発表しました。僕もまだ使い始めたばかりでわからないことも多く、いたって入門的な話ですが、少しでも使うひとが増えたらノウハウもたまっていいんじゃないかと思って発表した次第です。 発表者やお越しいただいたみなさま、また、ustreamでご覧になっていただいた方々、お疲れさまでした!!1

    Kansai.pm第13回ミーティングで発表しました「HudsonでPerlプロジェクトの継続テスト」 - Kentaro Kuribayashi's blog
  • 1