Slideshow transcript
Slide 1: Test Continuous Kang-min Liu <gugod@gugod.org>
Slide 2: Continuous Testing http://groups.csail.mit.edu/pag/continuoustesting/
Slide 3: Eclipse Plugin For Java
Slide 4: JUnit
Slide 5: Foo.java FooTest.java
Slide 6: Changed Foo.java FooTest.java
Slide 7: Changed Foo.java FooTest.java auto run
Slide 8: HEY
Slide 9: We Perl
Slide 11: Test::Continuous http://search.cpan.org/dist/Test-Continuous
Slide 12: DEMO
Slide 13: perl -MTest::Continuous -e runtests' murmur: There should be a better way...
Slide 14: --------------------------------------------- /Users/gugod/dev/Acme-Greeting/t/01.english.t (Wstat: 65280 Tests: 5 Failed: 1) Failed test: 5 Non-zero exit status: 255 Parse errors: Bad plan. You planned 4 tests but ran 5. Files=1, Tests=5, 0 wallclock secs ( 0.00 usr 0.01 sys + 0.05 cusr 0.01 csys = 0.07 CPU) Result: FAIL [MSG]: /Users/gugod/Acme-Greeting/t/01.english.t was changed. /Users/gugod/dev/Acme-Greeting/t/01.english......ok --------------------------------------------- Result: PASS [MSG]: /Users/gugod/dev/Acme-Greeting/t/01.english.t was changed. /Users/gugod/dev/Acme-Greeting/t/01.english......ok ---------------------------------------------
Slide 15: What It Does... 1. Scan modified files 2. Find all tests requiring a re-run. 3. Run those tests 4. Report PASS / FAIL 5. GOTO 1
Slide 16: How it’s done 1. Scan modified files. File::Modified 2. Find all tests requiring a re-run. Module::ExtractUse 3. Run those tests. App::Prove 4. Report PASS / FAIL. Log::Dispatch 5. GOTO 1. while(1)
Slide 17: CPANFTW CPAN For The Win
Slide 18: Good For...
Slide 19: Test Driven Development
Slide 20: Test Driven Refactoring
Slide 21: <CODE>
Slide 22: What It Does (1st day) 1. Wait until any file is modified 2. Run all tests 3. Report PASS / FAIL 4. GOTO 1
Slide 23: Run ALL tests
Slide 24: Wasting Time
Slide 25: Write less test
Slide 26: bad software
Slide 27: hate software
Slide 29: Run as few tests as possible Module::ExtractUse
Slide 30: Only run .t if that’s modified
Slide 31: dependency of .t
Slide 32: Moose.pm moose.t Cow.pm cow.t OX.pm fight.t
Slide 33: Moose.pm moose.t Cow.pm cow.t OX.pm fight.t
Slide 34: Moose.pm moose.t Cow.pm cow.t OX.pm fight.t
Slide 35: Moose.pm moose.t Cow.pm cow.t OX.pm fight.t
Slide 36: Moose.pm moose.t Cow.pm cow.t OX.pm fight.t
Slide 37: Log::Dispatch based notification Should be easy extend
Slide 38: Log::Dispatch::Screen
Slide 39: --------------------------------------------- /Users/gugod/dev/Acme-Greeting/t/01.english.t (Wstat: 65280 Tests: 5 Failed: 1) Failed test: 5 Non-zero exit status: 255 Parse errors: Bad plan. You planned 4 tests but ran 5. Files=1, Tests=5, 0 wallclock secs ( 0.00 usr 0.01 sys + 0.05 cusr 0.01 csys = 0.07 CPU) Result: FAIL [MSG]: /Users/gugod/Acme-Greeting/t/01.english.t was changed. /Users/gugod/dev/Acme-Greeting/t/01.english......ok --------------------------------------------- Result: PASS [MSG]: /Users/gugod/dev/Acme-Greeting/t/01.english.t was changed. /Users/gugod/dev/Acme-Greeting/t/01.english......ok ---------------------------------------------
Slide 40: /me Mac
Slide 41: Good developing platform and macbook air is so shiny
Slide 42: Growl Universal Reminder http://growl.info
Slide 43: Growl Universal Reminder http://growl.info
Slide 44: Log::Disptach::MacGrowl auto-used if installed
Slide 45: Log::Disptach::MacGrowl auto-used if installed
Slide 46: Not good enough...
Slide 47: Only check .pm dependency .pm → .t .c → .t .conf → .t .yaml → .t
Slide 48: Shallow Dependency
Slide 49: Animal.pm Moose.pm Cow.pm cow.t moose.t
Slide 50: isa Animal.pm Moose.pm Cow.pm cow.t moose.t
Slide 51: isa Animal.pm Moose.pm isa Cow.pm cow.t moose.t
Slide 52: isa Animal.pm Moose.pm isa tested by Cow.pm cow.t moose.t
Slide 53: isa Animal.pm Moose.pm isa tested by tested by Cow.pm cow.t moose.t
Slide 54: isa Animal.pm Moose.pm isa tested by tested by Cow.pm cow.t moose.t
Slide 55: isa Animal.pm Moose.pm tested by isa tested by animal.t tested by Cow.pm cow.t moose.t
Slide 56: Should clearly notified what’s failed
Slide 57: No High-Def cute looking icon ICON DESIGNER WANTED
Slide 58: Future • Better Dependency Detection • Convention based (For Catalyst / Jifty / Others) • Configuration based • Support other Universal Reminder on other platform. (Twitter!)
Slide 59: END
Slide 60: Happy Testing



Add a comment on Slide 1
If you have a SlideShare account, login to comment; else you can comment as a guest- Favorites & Groups
Showing 1-50 of 1 (more)