Upload
jeen-lee
View
1.723
Download
2
Embed Size (px)
DESCRIPTION
Citation preview
Smolder
- @JEEN_LEE ( silex )
2011년 5월 24일 화요일
ALL OF YOUR TEST RESULTS ARE BELONG TO SMOLDER.
2011년 5월 24일 화요일
Smolder• Web-based Continuous Integration
Smoke Server
• Reporting Format - TAP
• Test Anything Protocol
• Multiple Notification Channels
• Email / ATOM
•Perl (Customizable?)2011년 5월 24일 화요일
Built With...
• CGI::Application
• Template Toolkit2
• SQLite | MySQL
• Prototype.js
2011년 5월 24일 화요일
Installation
• $ cpanm Smolder
• $ git clone git://github.com/mpeters/smolder.git
• $ perl Makefile.PL && make test && make install
2011년 5월 24일 화요일
Run on Plack
• CGI::Application::Emulate::PSGI
• @kazuho++
• http://d.hatena.ne.jp/tokuhirom/20100111/1263224765
• @tokuhirom++
2011년 5월 24일 화요일
Usage
•Write some test codes
2011년 5월 24일 화요일
use Test::More tests => 7;BEGIN { use_ok("Yuni");}
my $guy = Yuni->new;ok($guy->has_hairs, "... Actually, some hairs...");is($guy->is_solo, 1, "Don't you know that?");isnt($guy->is_married, "huh?");
like($guy->age, qr/^3[0-9]$/, "30s");
SKIP: { skip "is this Confirmized?", 1; ok($guy->part_from_austin, "OTL");};
TODO: { local $TODO = "My Hairs!!!"; ok($guy->restore_hairs, "Chaebol?");};
done_testing();
t/002_hairless.t
2011년 5월 24일 화요일
t/003_30-solo-ceo.t
2011년 5월 24일 화요일
Run Tests!
2011년 5월 24일 화요일
$ prove -Ilib t/*.t --archive tap-archive.tar.gzt/001_requires.t .. skipped: Test requires module 'Yuni::Hair' but it's not foundt/002_hairless.t .. ok All tests successful.Files=2, Tests=7, 1 wallclock secs ( 0.04 usr 0.01 sys + 1.14 cusr 0.08 csys = 1.27 CPU)Result: PASS
TAP Archive created at /Users/jeen/Office/seminar-test/tap-archive.tar.gz
Run Tests!
2011년 5월 24일 화요일
TAP Archive?
$ tree.├── meta.yml└── t ├── 001_requires.t └── 002_hairless.t
1 directory, 3 files
$ cat meta.yml ---file_attributes: - description: t/001_requires.t end_time: 1306210679.30879 start_time: 1306210678.7085 - description: t/002_hairless.t end_time: 1306210679.9355 start_time: 1306210679.32536file_order: - t/001_requires.t - t/002_hairless.tstart_time: 1306210678stop_time: 1306210679
2011년 5월 24일 화요일
TAP Archive?
$ tree.├── meta.yml└── t ├── 001_requires.t └── 002_hairless.t
1 directory, 3 files
$ cat t/002_requires.t1..7ok 1 - use Yuni;ok 2 - ... Actually, some hairs...ok 3 - Don't you know that?ok 4ok 5 - 30sok 6 # skip is this Confirmized?not ok 7 - Chaebol? # TODO My Hairs!!!
# Failed (TODO) test 'Chaebol?'# at t/002_hairless.t line 20.
2011년 5월 24일 화요일
$ smolder_smoke_signal --server smolder.silex.kr --port 80 \--username jeen --password [dkfdktjanjgo?] \--file result-arch.tar.gz --project Blahblah \--architecture [ARCH] --platform [PLAT]
Uploading to Smolder
2011년 5월 24일 화요일
LWP::UserAgent->new()->post( 'http://smolder.project.org/app/developer_projects/add_report/$project_id', Content_Type => 'form-data', Content => [ architecture => '386', platform => 'Linux', comments => $comments, username => 'my-user', password => 's3cr3t', report_file => ['tap_archive.tar.gz'], ] );
* write uploading code ( + comments, architecture, platform )
2011년 5월 24일 화요일
Recent Reports2011년 5월 24일 화요일
Report Details2011년 5월 24일 화요일
Progress Graphs
2011년 5월 24일 화요일
$ git diff Graphs.pmdiff --git a/lib/Smolder/Control/Graphs.pm b/lib/Smolder/Control/Graphs.pmindex c41dbe9..e97abb8 100644--- a/lib/Smolder/Control/Graphs.pm+++ b/lib/Smolder/Control/Graphs.pm@@ -162,7 +162,7 @@ sub image { open($NO_DATA_FH, '<', $file) or die "Could not open '$file' for reading: $!"; local $/ = undef;- print <$NO_DATA_FH>;+ <$NO_DATA_FH>; close($NO_DATA_FH) or die "Could not close file '$file': $!"; } else { @@ -181,7 +181,7 @@ sub image { legend => \@legend, title => $title, );- print $gd->png;+ $gd->png; } }
WTF?
2011년 5월 24일 화요일
DEMO
2011년 5월 24일 화요일
QA
2011년 5월 24일 화요일
QA++
2011년 5월 24일 화요일
Q/A
2011년 5월 24일 화요일
THX
2011년 5월 24일 화요일