SlideShare a Scribd company logo
1 of 13
Download to read offline
1
Redmineプラグインの
テストを書いてくれませんか?
Niigata.rb 2013/8/31
Copyright Tatsuya Saito.
2
自己紹介
●
齋藤達也
●
@two_pack
●
すわにい
●
Forkwell
https://forkwell.com/u/two-pack
●
Ruby ?
3
Redmine
●
問題管理システム(Issue Tracking System )の代表格!
–
http://www.redmine.org
–
他にもTrac、Mantis など。
–
Github 、Bitbucket などにもIssue を管理する仕組みがある。
●
Ruby on Rails で実装されている!
●
最近、諸事情であまり使っていない。。。
4
プラグイン
●
Redmine (というか Rails )はプラグインで拡張
する仕組みがある。
–
http://www.redmine.org/plugins
●
プラグインも
Ruby on Rails で
実装されている! (当たり前・・・)
5
XLS Export Plugin
●
Redmine に XLS Export Plugin というプラグインがあ
ります。
–
http://www.redmine.org/plugins/redmine_xls_export
https://github.com/two-pack/redmine_xls_export
–
チケットのリストを Excel 形式で出力するプラグインです。
–
よく使うものだったので、日本語のローカライズとかしまし
た。
●
ただ毎回、 Zip ファイルでリリースされる・・・
–
ので、勝手に Githubへ入れたアカウントがこちらです。
–
そこで、機能追加したり、バグ修正したりしています。
6
XLS Export Plugin のコード
私が思うに一言でまとめると
れがしー
7
XLS Export Plugin のテストコード
ない
8
で、ここに至る経緯は・・・
●
そろそろテストコード書かないとまずいよ
なあ、と思っていたところ。
→  Niigata.rb ?ぴーん!
→ れがしーなコードを改善したい!
  させてください!という人が
  きっといるはずだ! www
いますよね!いまでしょ!いますよね!いまでしょ!
9
改善欲をかき立てるために
●
実際のれがしーな感じのところの一部
def issues_to_xls2(issues, project, query, options = {})
Spreadsheet.client_encoding = 'UTF-8'
****149 L の越えられない壁****
return xls_stream.string
end
10
改善欲をかき立てるために
●
実際のれがしーな感じのところの一部
def get_value_width(value)
***snips***
value.to_s.each_char do |c|
  case c
   when '1', '.', ';', ':', ',', ' ', 'i', 'I', 'j', 'J', '(', ')', '[', ']', '!', '-', 't', 'l'
     tot_w[idx] += 0.6
   when 'W', 'M', 'D'
     tot_w[idx] += 1.2
***snips***
return wdth+1.5
end
11
改善欲をかき立てるために
テストコードは
ない
12
まとめ
●
Redmine は Ruby on Rails で実装され
ている。
●
XLS Export Plugin はテストコードが
ない。
●
Redmine プラグインのテストコードを
かいてくれませんか?
→ いや、挑戦してみませんか! w
13
参考文献
●
レガシーコード改善ガイド
http://www.amazon.co.jp/dp/4798116831

More Related Content

Viewers also liked

インセプションデッキ紹介
インセプションデッキ紹介インセプションデッキ紹介
インセプションデッキ紹介You&I
 
Ameba流 scrumを浸透させていく方法
Ameba流 scrumを浸透させていく方法Ameba流 scrumを浸透させていく方法
Ameba流 scrumを浸透させていく方法Hirotaka Osaki
 
チケットシステムの可能性 - 開発から業務まで -
チケットシステムの可能性 - 開発から業務まで -チケットシステムの可能性 - 開発から業務まで -
チケットシステムの可能性 - 開発から業務まで -Makoto SAKAI
 
開発環境の認証を改善して Redmineを社内標準にした話
開発環境の認証を改善して Redmineを社内標準にした話開発環境の認証を改善して Redmineを社内標準にした話
開発環境の認証を改善して Redmineを社内標準にした話Ryou Soda
 
Redmineのバージョンアップに追従していくための一工夫
Redmineのバージョンアップに追従していくための一工夫Redmineのバージョンアップに追従していくための一工夫
Redmineのバージョンアップに追従していくための一工夫Go Maeda
 
講演1 redmineの簡易crmとしての活用事例r2
講演1 redmineの簡易crmとしての活用事例r2講演1 redmineの簡易crmとしての活用事例r2
講演1 redmineの簡易crmとしての活用事例r2Hidehisa Matsutani
 
Unofficial Redmine Cookingの紹介
Unofficial Redmine Cookingの紹介Unofficial Redmine Cookingの紹介
Unofficial Redmine Cookingの紹介Yuuki Nara
 
20140131 万葉帰社日発表 チーム積み重ね 公開版
20140131 万葉帰社日発表 チーム積み重ね 公開版20140131 万葉帰社日発表 チーム積み重ね 公開版
20140131 万葉帰社日発表 チーム積み重ね 公開版tatsuo sakurai
 
KPTの基本と、その活用法
KPTの基本と、その活用法KPTの基本と、その活用法
KPTの基本と、その活用法ESM SEC
 
Yggdrasil(ゆぐどらしる) ~ サーバ運用のNo Ticket, No Work ~
Yggdrasil(ゆぐどらしる) ~ サーバ運用のNo Ticket, No Work ~Yggdrasil(ゆぐどらしる) ~ サーバ運用のNo Ticket, No Work ~
Yggdrasil(ゆぐどらしる) ~ サーバ運用のNo Ticket, No Work ~Tomohisa Kusukawa
 

Viewers also liked (11)

インセプションデッキ紹介
インセプションデッキ紹介インセプションデッキ紹介
インセプションデッキ紹介
 
Ameba流 scrumを浸透させていく方法
Ameba流 scrumを浸透させていく方法Ameba流 scrumを浸透させていく方法
Ameba流 scrumを浸透させていく方法
 
チケットシステムの可能性 - 開発から業務まで -
チケットシステムの可能性 - 開発から業務まで -チケットシステムの可能性 - 開発から業務まで -
チケットシステムの可能性 - 開発から業務まで -
 
開発環境の認証を改善して Redmineを社内標準にした話
開発環境の認証を改善して Redmineを社内標準にした話開発環境の認証を改善して Redmineを社内標準にした話
開発環境の認証を改善して Redmineを社内標準にした話
 
Redmineのバージョンアップに追従していくための一工夫
Redmineのバージョンアップに追従していくための一工夫Redmineのバージョンアップに追従していくための一工夫
Redmineのバージョンアップに追従していくための一工夫
 
講演1 redmineの簡易crmとしての活用事例r2
講演1 redmineの簡易crmとしての活用事例r2講演1 redmineの簡易crmとしての活用事例r2
講演1 redmineの簡易crmとしての活用事例r2
 
Unofficial Redmine Cookingの紹介
Unofficial Redmine Cookingの紹介Unofficial Redmine Cookingの紹介
Unofficial Redmine Cookingの紹介
 
20140131 万葉帰社日発表 チーム積み重ね 公開版
20140131 万葉帰社日発表 チーム積み重ね 公開版20140131 万葉帰社日発表 チーム積み重ね 公開版
20140131 万葉帰社日発表 チーム積み重ね 公開版
 
KPTの基本と、その活用法
KPTの基本と、その活用法KPTの基本と、その活用法
KPTの基本と、その活用法
 
Yggdrasil(ゆぐどらしる) ~ サーバ運用のNo Ticket, No Work ~
Yggdrasil(ゆぐどらしる) ~ サーバ運用のNo Ticket, No Work ~Yggdrasil(ゆぐどらしる) ~ サーバ運用のNo Ticket, No Work ~
Yggdrasil(ゆぐどらしる) ~ サーバ運用のNo Ticket, No Work ~
 
運用業務でのRedmine
運用業務でのRedmine運用業務でのRedmine
運用業務でのRedmine
 

Similar to Redmineプラグインのテストを書いてくれませんか? #niigatarb

Al mininum 47redmine-2nd
Al mininum 47redmine-2ndAl mininum 47redmine-2nd
Al mininum 47redmine-2ndmikoto20000
 
Redmine plugin ハンズオン
Redmine plugin ハンズオンRedmine plugin ハンズオン
Redmine plugin ハンズオンHaruyuki Iida
 
Redmine4時代のプラグイン開発 redmine.tokyo #13
Redmine4時代のプラグイン開発 redmine.tokyo #13Redmine4時代のプラグイン開発 redmine.tokyo #13
Redmine4時代のプラグイン開発 redmine.tokyo #13Sho Douhashi
 
Sprocketsを捨てたい
Sprocketsを捨てたいSprocketsを捨てたい
Sprocketsを捨てたいMasato Noguchi
 
Bundler kanazawa.rb meetup #2 2012/09/19
Bundler kanazawa.rb meetup #2 2012/09/19Bundler kanazawa.rb meetup #2 2012/09/19
Bundler kanazawa.rb meetup #2 2012/09/19Hitoshi Kurokawa
 
Hyper → Highspeed → Development
Hyper → Highspeed → DevelopmentHyper → Highspeed → Development
Hyper → Highspeed → Developmentaktsk
 
20150228_渋谷Webエンジニア朝会LT資料
20150228_渋谷Webエンジニア朝会LT資料20150228_渋谷Webエンジニア朝会LT資料
20150228_渋谷Webエンジニア朝会LT資料慎平 仁藤
 
テクてく Lotus 技術者夜会 03/16 Lotus Notes/Domino Upgrade Pack とは
テクてく Lotus 技術者夜会 03/16 Lotus Notes/Domino Upgrade Pack とはテクてく Lotus 技術者夜会 03/16 Lotus Notes/Domino Upgrade Pack とは
テクてく Lotus 技術者夜会 03/16 Lotus Notes/Domino Upgrade Pack とはHiroaki Komine
 
Redmineをプラグインで拡張しよう
Redmineをプラグインで拡張しようRedmineをプラグインで拡張しよう
Redmineをプラグインで拡張しようHaruyuki Iida
 
Rails templateで開発の初速を上げよう
Rails templateで開発の初速を上げようRails templateで開発の初速を上げよう
Rails templateで開発の初速を上げよう豊明 尾古
 
サーバサイドコース Sinatra + SPARQL 編
サーバサイドコース Sinatra + SPARQL 編サーバサイドコース Sinatra + SPARQL 編
サーバサイドコース Sinatra + SPARQL 編Fumihiro Kato
 
ロボットシステム学2015年第9回
ロボットシステム学2015年第9回ロボットシステム学2015年第9回
ロボットシステム学2015年第9回Ryuichi Ueda
 
Git & GitHub & kintone でウルトラハッピー!
Git & GitHub & kintone でウルトラハッピー!Git & GitHub & kintone でウルトラハッピー!
Git & GitHub & kintone でウルトラハッピー!ymmt
 
Making Editor written in Ruby version 20160611
Making Editor written in Ruby version 20160611Making Editor written in Ruby version 20160611
Making Editor written in Ruby version 20160611Langur
 
Redmineサーバ統合事例
Redmineサーバ統合事例Redmineサーバ統合事例
Redmineサーバ統合事例Yuuki Nara
 

Similar to Redmineプラグインのテストを書いてくれませんか? #niigatarb (20)

Al mininum 47redmine-2nd
Al mininum 47redmine-2ndAl mininum 47redmine-2nd
Al mininum 47redmine-2nd
 
Redmine plugin ハンズオン
Redmine plugin ハンズオンRedmine plugin ハンズオン
Redmine plugin ハンズオン
 
Redmine4時代のプラグイン開発 redmine.tokyo #13
Redmine4時代のプラグイン開発 redmine.tokyo #13Redmine4時代のプラグイン開発 redmine.tokyo #13
Redmine4時代のプラグイン開発 redmine.tokyo #13
 
Sprocketsを捨てたい
Sprocketsを捨てたいSprocketsを捨てたい
Sprocketsを捨てたい
 
Start-padrino
Start-padrinoStart-padrino
Start-padrino
 
Bundler kanazawa.rb meetup #2 2012/09/19
Bundler kanazawa.rb meetup #2 2012/09/19Bundler kanazawa.rb meetup #2 2012/09/19
Bundler kanazawa.rb meetup #2 2012/09/19
 
Hyper → Highspeed → Development
Hyper → Highspeed → DevelopmentHyper → Highspeed → Development
Hyper → Highspeed → Development
 
20150228_渋谷Webエンジニア朝会LT資料
20150228_渋谷Webエンジニア朝会LT資料20150228_渋谷Webエンジニア朝会LT資料
20150228_渋谷Webエンジニア朝会LT資料
 
mruby for embedded systems
mruby for embedded systemsmruby for embedded systems
mruby for embedded systems
 
Tokyo.R#16 wdkz
Tokyo.R#16 wdkzTokyo.R#16 wdkz
Tokyo.R#16 wdkz
 
テクてく Lotus 技術者夜会 03/16 Lotus Notes/Domino Upgrade Pack とは
テクてく Lotus 技術者夜会 03/16 Lotus Notes/Domino Upgrade Pack とはテクてく Lotus 技術者夜会 03/16 Lotus Notes/Domino Upgrade Pack とは
テクてく Lotus 技術者夜会 03/16 Lotus Notes/Domino Upgrade Pack とは
 
Redmineをプラグインで拡張しよう
Redmineをプラグインで拡張しようRedmineをプラグインで拡張しよう
Redmineをプラグインで拡張しよう
 
Redmine Applied for Large Scale
Redmine Applied  for Large ScaleRedmine Applied  for Large Scale
Redmine Applied for Large Scale
 
Rails templateで開発の初速を上げよう
Rails templateで開発の初速を上げようRails templateで開発の初速を上げよう
Rails templateで開発の初速を上げよう
 
Hudson × Redmine
Hudson × RedmineHudson × Redmine
Hudson × Redmine
 
サーバサイドコース Sinatra + SPARQL 編
サーバサイドコース Sinatra + SPARQL 編サーバサイドコース Sinatra + SPARQL 編
サーバサイドコース Sinatra + SPARQL 編
 
ロボットシステム学2015年第9回
ロボットシステム学2015年第9回ロボットシステム学2015年第9回
ロボットシステム学2015年第9回
 
Git & GitHub & kintone でウルトラハッピー!
Git & GitHub & kintone でウルトラハッピー!Git & GitHub & kintone でウルトラハッピー!
Git & GitHub & kintone でウルトラハッピー!
 
Making Editor written in Ruby version 20160611
Making Editor written in Ruby version 20160611Making Editor written in Ruby version 20160611
Making Editor written in Ruby version 20160611
 
Redmineサーバ統合事例
Redmineサーバ統合事例Redmineサーバ統合事例
Redmineサーバ統合事例
 

Redmineプラグインのテストを書いてくれませんか? #niigatarb