TAなんて言えるほど、自分には知見がないのだけれど、少しでもお役に立てればと思って、JUnitとCucumberとGithubとJenkinsとSonarとHerokuをからめたデモを用意してみた。
(https://github.com/itagakishintaro/fizzbuzz-web)
目的は3つ。
- 経験者が少ないので、アジャイル界隈でホットな技術について実際に触れていただきたい。
- ドキュメントをテーマにするのであれば、Cucumber、JUnitはドキュメントの代替になり得るので、どんなものかを知っておいていただきたい。
- アジャイルを体験したいという気持ちから試行する方向で話しが進んでいるが、きちんと仮説を立てた上でやらないと研究成果が得られないので注意してほしい。
作ったものは、Fizzbuzz問題を答えるWebアプリ。
View(JSP)、Controller(Servlet)、Model(POJO)各1クラスの最小スペック。
以下の順でやってみた。
1.JUnit
2.Cucumberで受入テスト
個人的には、お客様がCucumberの書式で仕様を書いてくれるとは思えないので、どうかと思うけど、アジャイルにおけるドキュメントという観点からは外せないと思う。
※仕様書や設計書の代替という意味ではCucumberに軍配が上がるけど、個人的には、Groovy+Spockの方が好き。
※仕様書や設計書の代替という意味ではCucumberに軍配が上がるけど、個人的には、Groovy+Spockの方が好き。
参考
- 書籍「JUnit実践入門」(良書。オススメ。)
3.Githubに登録
試行をするときの参考にしてもらいたい。
あと、作ったものをみてもらうために。
eclipse+EGitでやってます。
慣れないうちは、eclipse+EGitで最低限のことだけでいいと思う。
あと、作ったものをみてもらうために。
eclipse+EGitでやってます。
慣れないうちは、eclipse+EGitで最低限のことだけでいいと思う。
ハマリポイント
- SSH関連の鍵の設定。
- 分散型に慣れてないと、ローカルのGitとGithubの関係がわからなくなる。
- gitを知らないくせに、色々試したくなってしまう。
- github for windowsのUIが素敵なので、eclipse+EGitとどっちにするか迷ってしまう。
参考
- webで色々。
4.Jenkinsでビルド
「Jenkins実践入門」を参考にした。
試行をするときの参考にしてもらいたい。
試行をするときの参考にしてもらいたい。
ハマリポイント
- Githubとの連携(SSH関連)。
参考
- webで色々。何となくできちゃった感じ。次もハマりそう。。。
5.JenkinsからSonarに連携
「Jenkins実践入門」を参考にした。
試行をするときの参考にしてもらいたい。
試行をするときの参考にしてもらいたい。
ハマリポイント
- プラグインと設定の書き方(動いてるけど、今もちゃんと理解できてない。)。
- pomの書き方(動いてるけど、無駄な記述とかあると思う。)
参考
http://docs.codehaus.org/display/SONAR/Analyzing+with+SonarQube+Runner http://docs.codehaus.org/display/SONAR/Code+Coverage+by+Unit+Tests+for+Java+Project
6.JenkinsからHerokuにデプロイ(が、うまくいってない。)
java.lang.IllegalArgumentException: Document base /app/src/main/webapp does not exist or is not a readable directory
ハマリポイント
- JDKがデフォ6なので7に直さなきゃない(system.propertiesが必要)。
- Dynosが動いてくれない(Procfileが必要)。
- Tomcatが動かない(Main.javaが必要、pom.xmlに記述が必要)。
参考
https://devcenter.heroku.com/articles/add-java-version-to-an-existing-maven-app
https://devcenter.heroku.com/articles/procfile
https://devcenter.heroku.com/articles/create-a-java-web-application-using-embedded-tomcat
→2013/6/17
Slenium+Cucumberをやってみた。
できるけど、cucumberでは@Before, @Afterがきかないみたいでちょっと無理矢理感が。。。
正しいやり方ってあるのかな?
→2013/6/17
cucumber.annotationとHookを使えばいいのか。
→2013/6/20
Herokuへのアップもできた。
ただ、Jenkinsから実行するときgit publisherでうまくいかないのでwindowsコマンドにしてしまった。。。
こんばんは。
返信削除テストの自動化、早くどこでも当たり前になって欲しいですね!