タグ

testに関するziguzaguのブックマーク (32)

  • おそらくはそれさえも平凡な日々: 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とマスタデ

  • ベンチどうしますか? - Articles Advent Calendar 2011 Dbix

    どうもnekokakです。 みなさんDBIを使っているコードのベンチマークってどうしてますか? SQLのチューニングであればいいのですが、ロジックのベンチマークを取りたい時に 実際にdatabaseにクエリなげてしまうと、ネットワーク通信等が発生し、細かいロジックのチューニングの邪魔になることがあります。 たとえば私はTengのチューニングをするときに、バックエンドのdatabase性能なんてどうでもよくて、 プログラムの性能をみたいわけです。 そんなときに便利なのがTest::Mock::Guardです。(え Testというnamespaceにありますが、やっていることはコードをさしかえることなので これをつかって実際にデータベースにクエリなげるところとかをフガフガします。 例えばTengのベンチマークを取る時に試したコードは以下のようなものです。 #! /usr/bin/perl us

    ベンチどうしますか? - Articles Advent Calendar 2011 Dbix
  • 噂のRuby&Githubなプロジェクトにスキな継続的インテグレーションサービス「Travis CI」を試してみたらすごくよかった

  • 大江戸Ruby会議01 高速なテストサイクルを回すには - 2nd life (移転しました)

    日大江戸*1で行われた大江戸Ruby会議01で、高速なテストサイクルを回すにはという内容で発表してきました。 大江戸Ruby会議01 高速なテストサイクルを回すには View more presentations from hotchpotch テストを速くするには二パターンあり、一つは単体実行時の速度・フィードバックの高速化、もう一つはすべてのテスト実行時の高速化があると思っていて、それらについての話です。ぎゅっとまとめると、前半の単体実行時の速度・フィードバック高速化には spork / prefetch-rspec / autotest / watchr を使おうという話と、後半は REE / parallel_tests による高速化・並列実行、remote spec によるリモートマシンでの分散テストについての話です。 特にオレオレプロジェクトの prefetch-rspec

    大江戸Ruby会議01 高速なテストサイクルを回すには - 2nd life (移転しました)
  • OSX で tmpfs 的なことをする方法 - unknownplace.org

    MacBook Air 上で Test::mysqld なテストを走らせていると SSD の寿命縮めそうだなーとおもって tmpfs 的なものが OS X にもないものかと検索したら hdid(8) でできるとのこと。 man の一番下のほうに例が載っている。 $ hdid -nomount ram://128000 /dev/disk1 これでメモリから128000セクタ(1セクタ512バイトなので62.5MB)分とって仮想ディスクをつくり、 $ newfs_hfs /dev/disk1 Initialized /dev/rdisk1 as a 63 MB HFS Plus volume HFSで初期化して、あとは普通に $ mkdir /tmp/mnt $ mount -t hfs /dev/disk1 /tmp/mnt でマウントすればOK。 作ったディスクの破棄には $ hdidu

  • はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知

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

    はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知
  • 第30回 Test::Class:ユニットテストに使うだけでなく | gihyo.jp

    メタデータからテスト件数を取得する 前回はテストファイルやテストデータの数からテストプランを計算するモジュールを紹介しました。今回はその続きとして、テストファイルのメタデータからテストの数を求めるモジュールを紹介していきましょう。これらのモジュールの多くは1994年にケント・ベック(Kent Beck)氏がSmalltalk向けに書いたSUnitを祖先にもつ、いわゆるxUnit系のフレームワークに属するものですが、Perlにはそれ以前からTest Anything Protocolを使った独自のテスト手法が存在していたため、Javaなどで使われている同種のフレームワークとはやや毛色の違う部分もあります。一般的にはクラスをひとつ書くたびに対応するユニットテスト用のクラスを書くのがよいように言われていますが、ここではもっとゆるく、テストを自動的に検出してくれるだけでなく、テストの事前事後になん

    第30回 Test::Class:ユニットテストに使うだけでなく | gihyo.jp
  • tokuhirom blog

    Blog Search when-present<#else>when-missing. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)?? ---- ---- FTL stack trace ("~" means nesting-related): - Failed at: ${entry.path} [in template "__entry.ftlh" at line 3, column 25] - Reached through: #include "__entry.ftlh" [in template "entry.ftlh" at

  • YappoLogs: Ajax アプリ等の為の JavaScript コードのテストツール JSTAPd を作ってるよ

    Ajax アプリ等の為の JavaScript コードのテストツール JSTAPd を作ってるよ Data::ObjectDriverをDISってる人の話題が三周目に突入した今日この頃ですが皆さんは何をDISってますか?Yappoです。 JavaScript にもテストツールが色々とあると思うんですが、 Ajax アプリの XHR リクエストとかも含めてラクチンにテストできるツールが見つからなかったので JSTAPd というツールを作りました。 http://github.com/yappo/JSTAPd 名前の通りテスト結果はTAPで出力してるのでproveコマンドとかを使ってPerlの作法でテストできます。 ブラウザの連携の設定をすれば prove -v foo/hoge.t とかをコマンドで打ち込めば勝手にブラウザ立ち上げてテストコード実行してブラウザ閉じて結果をコンソールに吐いてく

  • To repeat testing with different configuration - Islands in the byte stream (legacy)

    構成条件を変えてテストを繰り返したいことがある。 たとえば,XSとPurePerlの両方の実装を持つモジュールなどはそうだし,Any::Mooseを使ったモジュールであれば $ENV{ANY_MOOSE} を変えてテストを繰り返したいと考えるのは当然だ。 この問題は,postamble()*1でMakefileにターゲットを追加することで解決できる。 さて,ここでは,開発者モードのときに $ENV{FOO_PUREPERL}=1 でテストをもう一度繰り返したいものとする。これには,Makefile.PLに以下のように記述すればよい。 # Makefile.PL use inc::Module::Install; # ... if(author_context){ # repeat testing # see also ExtUtils::MM_Any::test_via_harness()

    To repeat testing with different configuration - Islands in the byte stream (legacy)
  • Test::More で no_plan が良くない訳 - tsucchi’s diary(元はてなダイアリー)

    Test::More 自動試験をさらに便利にする - Perl入門〜サンプルコードによるPerl入門〜 no_planは、「テストを弱くするのでなるべく避けてください」とドキュメントにあるのですが、何が弱くなるのかよくわからない。 オイラも結構 no_plan 使ってしまうのだけどね、でもホントは良くないんだよね。exit されると、テストが途中で終了しちゃうんだよね。例を作るとこんな感じ。 #!/usr/bin/perl use strict; use warnings; use Test::More "no_plan"; # 以下テスト is( sum(1,2), 3);# => ok is( sum('a', 0), -1); #=> ホントは NG だけど、exit されて上が ok だからテストスイートが通ってしまう # これがテストされる関数。同一ファイル・パッケージにおいてる

    Test::More で no_plan が良くない訳 - tsucchi’s diary(元はてなダイアリー)
  • Kazuho@Cybozu Labs: Perl のテスト用に MySQL 環境を自動で構築するモジュール Test::mysqld を書いた

    ORM やウェブアプリケーション関連のライブラリなどのテストケースを書くにあたっては、 RDBMS へのアクセスが必要になります。しかし、SQLite のようなスタンドアローンのデータベースと比較すると、サーバ型データベースである MySQL に接続してテストを書くのは、既存の MySQL の権限設定やデータベース名を気にする必要があったりと、いろいろ不便です。そこで、MySQL のインスタンスをテンポラリディレクトリに自動生成し、テストが終わったら削除してくれる Perl モジュール Test::mysqld を書きました。こんな感じで使います。 use DBI; use Test::mysqld; use Test::More; my $mysqld = Test::mysqld->new( my_cnf => { 'skip-networking' => '' }, # TCP接続を

  • about Test::More::done_testing - tokuhirom's blog

    Test::More::done_testing が導入されているわけですが、みなさんつかってますか? Test::More の 0.87_01 から導入されてる新機能なんですが 0.87_01 Sun Mar 29 09:56:52 BST 2009 New Features * done_testing() allows you to declare that you have finished running tests, and how many you ran. It is a safer no_plan and effectively replaces it.というわけで、無計画な人でも安全な感じになります。 具体的には以下のような感じ。 15:24 tokuhirom: plan の逆っていうか 15:25 tokuhirom: plan で数を書くのめんどいじゃんすか 15

  • Journal of Ovid (2709)

    The latest developer release of Test::More allows subtests. Subtests are great in that they solve a lot of problems in advanced Perl testing, but they have required a change in Test::Builder. Previously you could do stuff like this: package Test::StringReverse; use base 'Test::Builder::Module'; our @EXPORT = qw(is_reversed); my $BUILDER = Test::Builder->new; sub is_reversed ($$;$) {     my ( $have

    ziguzagu
    ziguzagu 2009/07/01
    Test::More の subtest
  • HTTP::Engineでテスト : As Sloth As Possible

    そう言えばこないだのうどん屋のコードは一切テストを書かなかったけど、それはよろしく無い、まったくもって主義に反するし、RubyのときはちゃんとSpec書いたのにPerlのときは書かないだとかふざけてる、と思ったのでテストも書いてみることにした。 さてテストだけど、HTTP::Engineにはちゃんとテスト用のインターフェースが用意されている。あと、テストリクエストを生成するモジュールもある。なんだ、じゃあ話は簡単だ。 interface => { module => 'Test' } でengineを作る HTTP::Engine::Test::Requestでrequestを作る engineのrunメソッドにテストリクエストを投げてやる 返ってきたレスポンスをチェックする ってことですね、わかります。 まずは素直に書いてみる コード量少ないのではっつけちゃおう。Udon::AppにGE

    HTTP::Engineでテスト : As Sloth As Possible
  • Test::Mock::LWP を試す - 日向夏特殊応援部隊

    久しぶりのエントリです。一応元気にやってますよっと。 ここまでのあらすじ 同僚の id:typomaster さんから、Test::Mock::LWP を使ってテスト書きたいんだけど〜と言われたので早速軽く試してみましたよ。 Test::Mock::LWP とは 具体的には、 LWP::UserAgent HTTP::Request HTTP::Response モジュールに対して Test::MockObject 化した物だと考えて良い。それぞれ、 Test::Mock::LWP::UserAgent Test::Mock::HTTP::Request Test::Mock::HTTP::Response モジュールが対応しています。それぞれソースは短いので実際に見てみましょう。 Test::Mock::HTTP::Request package Test::Mock::HTTP::Re

    Test::Mock::LWP を試す - 日向夏特殊応援部隊
  • Six Apart - Tech Talk Blog: Watirを使ってテストを自動化しようの話

    こんにちは、TypePadのQAを担当している山口です。今回はWatirを使ったテストの自動化の話を少ししたいと思います。 Watir = Web Application Test In Ruby WatirはRuby上で動作するウェブアプリケーション向けのテスト自動化ツールです。「Web Application Testing in Ruby」の頭字語で「ウォーター(water)」と発音します。 Watirはこんな風に使います。 require "watir" ie = Watir::IE.new ie.goto("http://memolog.org/") といった風に使います。Watirに組み込まれているメソッドを利用するだけで簡単にIEを操作することができます。この例では、IEを自動的に起動して、http://memolog.org に移動します。 Watir vs Seleniu

  • subtechグループ - Bulknews::Subtech - Test::Base でテストコードとデータの分離

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

    subtechグループ - Bulknews::Subtech - Test::Base でテストコードとデータの分離
  • はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知

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

    はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知
  • Test::Base翻訳 - Practice of Programming

    Shibuya.pmの宮川さんのテクニカルトークを受けて、翻訳テンションがあがったので、 訳してみました。 Test::Base 0.52(エンコードをutf8に変更してください) <- 追記:perldoc.jp 側で対応していただけました。宮川さんありがとうございます http://perldoc.jp/docs/modules/Test-Base-0.52/lib/Test/Base.pod Test::Base::Filterもそのうち訳します。

    Test::Base翻訳 - Practice of Programming