Download free for 30 days
Sign in
Upload
Language (EN)
Support
Business
Mobile
Social Media
Marketing
Technology
Art & Photos
Career
Design
Education
Presentations & Public Speaking
Government & Nonprofit
Healthcare
Internet
Law
Leadership & Management
Automotive
Engineering
Software
Recruiting & HR
Retail
Sales
Services
Science
Small Business & Entrepreneurship
Food
Environment
Economy & Finance
Data & Analytics
Investor Relations
Sports
Spiritual
News & Politics
Travel
Self Improvement
Real Estate
Entertainment & Humor
Health & Medicine
Devices & Hardware
Lifestyle
Change Language
Language
English
Español
Português
Français
Deutsche
Cancel
Save
EN
Uploaded by
Akio Ishida
2,434 views
よりよいPHPUnitの実行方法を求めて
coverage情報を使って必要なテストだけを実行するphpunit-smartrunnerの紹介
Technology
◦
Read more
3
Save
Share
Embed
Embed presentation
Download
Download to read offline
1
/ 24
2
/ 24
3
/ 24
4
/ 24
5
/ 24
6
/ 24
7
/ 24
8
/ 24
9
/ 24
10
/ 24
11
/ 24
12
/ 24
13
/ 24
14
/ 24
15
/ 24
16
/ 24
17
/ 24
18
/ 24
19
/ 24
20
/ 24
21
/ 24
22
/ 24
23
/ 24
24
/ 24
More Related Content
PDF
Cake php + php unitによる実践的ユニットテスト
by
慶信 若松
PDF
PHPUnit でテスト駆動開発を始めよう
by
Yuya Takeyama
PDF
CakePHP(例えば2系)のテスト
by
monmon Kumagai
PDF
phpspecで始めるBDD
by
Yuuki Takezawa
PDF
8時間耐久PHPUnitの教室
by
Yusuke Ando
PDF
PHPとJavaScriptの噺
by
Shogo Kawahara
PDF
PHPデプロイツールの世界
by
Yuuki Takezawa
PPT
PHP agile test tips
by
Tsutomu Chikuba
Cake php + php unitによる実践的ユニットテスト
by
慶信 若松
PHPUnit でテスト駆動開発を始めよう
by
Yuya Takeyama
CakePHP(例えば2系)のテスト
by
monmon Kumagai
phpspecで始めるBDD
by
Yuuki Takezawa
8時間耐久PHPUnitの教室
by
Yusuke Ando
PHPとJavaScriptの噺
by
Shogo Kawahara
PHPデプロイツールの世界
by
Yuuki Takezawa
PHP agile test tips
by
Tsutomu Chikuba
What's hot
PPTX
Behat Driven Development
by
Ryo Tomidokoro
PDF
PHPの今とこれから2015
by
Rui Hirokawa
PDF
第21回関西PHP勉強会 ReactPHPは もっと流行って欲しい #phpkansai
by
Hisateru Tanaka
PPTX
PHP x AWS でスケーラブルなシステムをつくろう
by
Taiji INOUE
PDF
脆弱性もバグ、だからテストしよう PHPカンファンレス2015
by
ichikaway
PDF
Drupal 8 - モダンなアーキテクチャのPHPベースOSS CMS
by
Tomoki Hasegawa
PPTX
テストしなイカ? Seleniumで自動ブラウザテスト
by
Ohishi Mikage
PDF
Laravel5.1 Release
by
Yuuki Takezawa
PPT
Test Plugins
by
ykhr
PPTX
あるあるLT〜サーバーサイドエンジニア〜 Vol.3
by
Keiichi Hagiwara
PPT
Cakephp勉強会@tokyo #4
by
ichikaway
KEY
php-timecopを実戦投入してみた
by
Yoshio Hanawa
PPTX
nGrinder3 : だれもが簡単にできる性能テスト
by
JunHo Yoon
PDF
NetBeans、FuelPHP と過ごしたこの 2 ヶ月
by
suno88
KEY
PHPエクステンションの開発tips
by
Yoshio Hanawa
PDF
NetBeansではじめる FuelPHP
by
Junichi Yamamoto
PDF
Php非同期の技法
by
Shogo Kawahara
PDF
テストを書こう、Unity編
by
Hiroto Imoto
PPT
メタプログラミングって何だろう
by
Kota Mizushima
PPTX
[超初心者向け無料セミナー] 1時間でまるわかり!CakePHP概説&WordPress応用事例
by
TechGardenSchool
Behat Driven Development
by
Ryo Tomidokoro
PHPの今とこれから2015
by
Rui Hirokawa
第21回関西PHP勉強会 ReactPHPは もっと流行って欲しい #phpkansai
by
Hisateru Tanaka
PHP x AWS でスケーラブルなシステムをつくろう
by
Taiji INOUE
脆弱性もバグ、だからテストしよう PHPカンファンレス2015
by
ichikaway
Drupal 8 - モダンなアーキテクチャのPHPベースOSS CMS
by
Tomoki Hasegawa
テストしなイカ? Seleniumで自動ブラウザテスト
by
Ohishi Mikage
Laravel5.1 Release
by
Yuuki Takezawa
Test Plugins
by
ykhr
あるあるLT〜サーバーサイドエンジニア〜 Vol.3
by
Keiichi Hagiwara
Cakephp勉強会@tokyo #4
by
ichikaway
php-timecopを実戦投入してみた
by
Yoshio Hanawa
nGrinder3 : だれもが簡単にできる性能テスト
by
JunHo Yoon
NetBeans、FuelPHP と過ごしたこの 2 ヶ月
by
suno88
PHPエクステンションの開発tips
by
Yoshio Hanawa
NetBeansではじめる FuelPHP
by
Junichi Yamamoto
Php非同期の技法
by
Shogo Kawahara
テストを書こう、Unity編
by
Hiroto Imoto
メタプログラミングって何だろう
by
Kota Mizushima
[超初心者向け無料セミナー] 1時間でまるわかり!CakePHP概説&WordPress応用事例
by
TechGardenSchool
Similar to よりよいPHPUnitの実行方法を求めて
PDF
Getting Started with Testing using PHPUnit
by
Atsuhiro Kubo
PDF
PHPUnitTest勉強会スライド
by
ssuser7a9029
PDF
PHPUnitTest勉強会スライド
by
ssuser7a9029
PDF
Phpunit at excite
by
yuki777
PDF
関西Php勉強会のlimeの話
by
Hisateru Tanaka
PPT
ビジネス的に高価値なアジャイルテスト
by
Tsutomu Chikuba
KEY
EC-CUBE + PHPUnit で 実践テスト駆動開発
by
Kentaro Ohkouchi
PDF
ひよこテスト駆動開発(PHPカンファレンス2014)
by
Oonishi Keitarou
PDF
Code igniterでテスト駆動開発 資料作成中
by
Takako Miyagawa
PDF
Introduction to Continuous Test Runner MakeGood
by
Atsuhiro Kubo
PPTX
Php development efficiency improvement
by
伸幸 茂木
PDF
PHP版レガシーコード改善に役立つ新パターン #wewlc_jp
by
Yahoo!デベロッパーネットワーク
PDF
テストファースト、自動テストを導入するという事について(@社内勉強会)
by
kyon mm
PPT
20120128 ci勉強会
by
m_shibuya
PDF
テストを書くのに挫折したあとやったこと
by
Yuta Ohashi
PPT
Php unit extensions_selenium2_testcaseによる結合試験でらくらくテスト♪
by
Tsutomu Chikuba
PDF
MakeGoodで快適なテスト駆動開発を
by
Atsuhiro Kubo
PDF
Php勉強会資料20090629
by
Takako Miyagawa
Getting Started with Testing using PHPUnit
by
Atsuhiro Kubo
PHPUnitTest勉強会スライド
by
ssuser7a9029
PHPUnitTest勉強会スライド
by
ssuser7a9029
Phpunit at excite
by
yuki777
関西Php勉強会のlimeの話
by
Hisateru Tanaka
ビジネス的に高価値なアジャイルテスト
by
Tsutomu Chikuba
EC-CUBE + PHPUnit で 実践テスト駆動開発
by
Kentaro Ohkouchi
ひよこテスト駆動開発(PHPカンファレンス2014)
by
Oonishi Keitarou
Code igniterでテスト駆動開発 資料作成中
by
Takako Miyagawa
Introduction to Continuous Test Runner MakeGood
by
Atsuhiro Kubo
Php development efficiency improvement
by
伸幸 茂木
PHP版レガシーコード改善に役立つ新パターン #wewlc_jp
by
Yahoo!デベロッパーネットワーク
テストファースト、自動テストを導入するという事について(@社内勉強会)
by
kyon mm
20120128 ci勉強会
by
m_shibuya
テストを書くのに挫折したあとやったこと
by
Yuta Ohashi
Php unit extensions_selenium2_testcaseによる結合試験でらくらくテスト♪
by
Tsutomu Chikuba
MakeGoodで快適なテスト駆動開発を
by
Atsuhiro Kubo
Php勉強会資料20090629
by
Takako Miyagawa
More from Akio Ishida
PDF
Prophecyを使ったユニットテスト
by
Akio Ishida
PDF
phpspecで学ぶLondon School TDD
by
Akio Ishida
PDF
PostgreSQLの範囲型と排他制約
by
Akio Ishida
PDF
Getting start with knockout.js
by
Akio Ishida
PDF
XIDを周回させてみよう
by
Akio Ishida
PDF
Local php-100828 2
by
Akio Ishida
PDF
Rubysapporo Stringsearch
by
Akio Ishida
PDF
Ruby Postgres 2009
by
Akio Ishida
PDF
使いこなそうGUC
by
Akio Ishida
PDF
textsearch_jaで全文検索
by
Akio Ishida
PDF
PostgreSQLで学ぶBoyer-Moore-Horspoolアルゴリズム
by
Akio Ishida
PDF
Ruby Postgres
by
Akio Ishida
Prophecyを使ったユニットテスト
by
Akio Ishida
phpspecで学ぶLondon School TDD
by
Akio Ishida
PostgreSQLの範囲型と排他制約
by
Akio Ishida
Getting start with knockout.js
by
Akio Ishida
XIDを周回させてみよう
by
Akio Ishida
Local php-100828 2
by
Akio Ishida
Rubysapporo Stringsearch
by
Akio Ishida
Ruby Postgres 2009
by
Akio Ishida
使いこなそうGUC
by
Akio Ishida
textsearch_jaで全文検索
by
Akio Ishida
PostgreSQLで学ぶBoyer-Moore-Horspoolアルゴリズム
by
Akio Ishida
Ruby Postgres
by
Akio Ishida
よりよいPHPUnitの実行方法を求めて
1.
よりよいPHPUnitの 実行方法を求めて 2015-9-18 @iakio
2.
UnitTestの価値 今書いたコードを今すぐ実行できること
3.
$ vendor/bin/phpunit tests/CalcTest.php を毎回手で実行するのはやめよう
4.
アクション1つで テストが動くようにする 何もしなくても テストが動くようにする
5.
tests/CalcTest.phpを変更したときに tests/CalcTest.phpを実行したい - エディタやIDEから1アクションで(QuickRun等) - 保存時にフックする -
grunt, gulp(node) - guard, watchr(ruby) - Stagehand_Testrunner
6.
quickrun.vimの例 CalcTest.phpを開いているとき アクション1つでphpunitを実行できる
7.
src/Calc.phpが変更したときにも tests/CalcTest.phpを実行したい - ファイル名で判断する?
8.
src/BankAccount.phpが src/Calc.phpを使っているので、 src/Calc.phpを変更した時は tests/BankAccountTest.phpと tests/CalcTest.phpを実行したい
9.
CalcTest.php BankAccountTest.php Calc.php BankAccount.php 1.このテストを動かすと 2.このコードが実行される
10.
CalcTest.php BankAccountTest.php Calc.php BankAccount.php 2.このテストを動かしたい 1.このコードを変更したら
11.
あるテストの実行中に どのファイルが実行されたかを 知ることができれば、 あるファイルが更新されたときに どのテストを 実行する必要があるかがわかる
12.
Coverage
13.
xdebug_start_code_coverage(); ... $data = xdebug_get_code_coverage(); どのファイルのどの行が実行されたかを取得 http://xdebug.org/docs/code_coverage
14.
interface PHPUnit_Framework_TestListener { public
function startTest(PHPUnit_Framework_Test $test); public function endTest(PHPUnit_Framework_Test $test, $time); ... } https://phpunit.de/manual/current/ja/extending- phpunit.html#extending-phpunit.PHPUnit_Framework_TestListener UnitTestの開始、終了にフック
15.
<?xml version="1.0"?> <phpunit> <listeners> <listener class="My¥Listener"> </listener> </listeners> </phpunit>
16.
composer require --dev iakio/phpunit-smartrunner:dev-master https://packagist.org/packages/iakio/phpunit-smartrunner
17.
$ vendor/bin/smartrunner init $
vendor/bin/smartrunner run tests/CalcTest.php CalcTest.phpが実行される (同時に依存するファイル情報を保存する) $ vendor/bin/smartrunner run src/Calc.php CalcTest.phpが実行される
18.
$ vendor/bin/smartrunner run
tests/BankAccountTest.php BankAccountTest.phpが実行される (同時に依存するファイル情報を保存する) $ vendor/bin/smartrunner run src/Calc.php CalcTest.php,BankAccountTest.php が実行される
19.
$ cat .smartrunner/cache.json { "src¥/Calc.php":
[ "tests¥/CalcTest.php", "tests¥/BankAccountTest.php" ], "tests¥/CalcTest.php": [ "tests¥/CalcTest.php" ], "src¥/BankAccount.php": [ "tests¥/BankAccountTest.php" ], "tests¥/BankAccountTest.php": [ "tests¥/BankAccountTest.php" ] }
20.
更新されたファイル名を引数に渡すだけなので、 エディタやIDE, filesystem watcher
と簡単に組み合 わせることができる vendor/bin/smartrunner run [ファイル名]
21.
let g:quickrun_config['php'] =
{ ¥ 'command' : './vendor/bin/smartrunner', ¥ 'cmdopt' : 'run' ¥} Calc.phpを開いているときでも 1アクションでテストを実行できる
22.
ファイルの更新を監視し、Calc.php 保存時にテストを実行する $ watchy -w
. -- bash -c 'vendor/bin/smartrunner run $FILE' (https://www.npmjs.com/package/watchy を使った例)
23.
課題 • 自分でもあまり使えていないので、どの程度便 利かよくわかっていない • Smarty,
Twig, Bladeのような、一度コンパイルし てPHPになるものは上手くいかない • require-devするよりpharにした方がよいかも • READMEが適当
24.
おまけ • iakio/phpunit-growlprinter • PHPUnitの結果をGrowl通知 •
こちらはpharで導入できるようになりました http://qiita.com/iakio/items/159fe963308467c102f2
Download