Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Testman

635 views

Published on

Testmanについての世界最初のプレゼンテーション

Published in: Technology
  • Be the first to comment

  • Be the first to like this

Testman

  1. 1. Testman2012.11.24 PyFes
  2. 2. Success Failrhacoのキャラクターを書いてくれる人を募集するために書いたダサいカエルの絵が会社のJenkinsで使われています。rhacoのテストはxUnit形式のxmlを出力していなくてjenkinsが使えない。同僚は仕方なくphpUnitを使おうとしたようですが…
  3. 3. phpUnitが全く気に入らず、結果の保存や、カバレッジ含んだ画面を見られるTestmanを開発してしまいました。わたしは再度ダサキャラを…。OSSもゆるキャラ時代になるに違いないっす。
  4. 4. • curl -L -O https://github.com/downloads/tokushima/ testman/testman.php http://localhost/testman.php/web/index.phpTestmanはファイル一つ。ブラウザで表示できる。使い方のドキュメントも含んでいる。
  5. 5. • php testman.php -reportxDebugを有効にして、reportオプション付きでテストを実行すれば、カバレッジ確認できる。
  6. 6. • php testman.php -report詳細でマウスオーバーすれば、どのファイルでカバーされているかもわかる。
  7. 7. test client • https://github.com/tokushima/ testman/blob/master/example/test/ entry/top.php <?php eq(1,1); $b = b(); $b->do_get(test_map_url(top,HOGE,AAA)); eq(TOP_HOGEAAA,$b->body());URLの設定から逆引きして決定したURLに対してブラウザの振りをしたクライアントでのテストもできる。
  8. 8. doctest <?php class Sample{   public function abc($str){     return (.$str.);     /∗∗∗      ∗ $self = new self();      ∗ eq("(hoge)",$self->abc("hoge"));      ∗/     /∗∗∗       # fuga       $self = new self();       eq("(fuga)",$self->abc("fuga"));      ∗/   }   static public function def($str){     return (.$str.);     /∗∗∗       eq("(hoge)",self::def("hoge"));      ∗/   }   /∗∗∗     eq("(hoge)",self::def("hoge"));     $self = new self();     eq("(fuga)",$self->abc("fuga"));    ∗/      /∗∗∗     # __setup__     eq(true,true);    ∗/   /∗∗∗     # __teardown__     eq(true,true);    ∗/ }Pythonistaにはおなじみのdoctest。doctestなのにsetupとteardownがある。
  9. 9. https://github.com/tokushima/testman

×