エキPy読書会 11 (2011/5/17)¶
- 日時:
2011/5/17 20:00 - 22:00
- 範囲:
8章(p221~): コードの管理
エキスパートPythonプログラミングの読書会11回目。 今回はMercurialHGとBuildbotの話でした。HGと他のDVCSの比較や、BuildbotとJenkinsの対比など情報交換しました。相変わらず本を読まない読書会ですね。
質疑応答(覚えてる範囲)¶
- Q: 大規模なリポジトリ(数GBとか)の clone はどうするの?
A: git はメモリを食い潰して落ちることもあるらしい、Mecurial は大丈夫だった?プロジェクトを目的毎に分割したりして、大規模にならないようにする戦略が良いかも?
- Q: Mercurial の複数ヘッドはどう運用するの?
A: Mercurial は1つのbranchに複数のヘッドが作成される(gitとは異なる仕組み)
複数のヘッドから merge するとそれぞれの parent が見れる
hgrc の extensions を設定すると hg glog でグラフが見れる
hg serve でサーバ上でグラフが見れる
- Q: ブランチ作って、いらなくなったら削除するの?
A: 削除はできない
hg ci --close-branch でクローズはできる
hg branches -a でアクティブなブランチだけ見せることもできる
- Q: 質問忘れた
A: bootstrap 実行して、buildout して、環境構築から走らせる、環境構築するだけでテストの価値はあるよ
- Q: 質問忘れた
A: buildbot はコマンドを送りつけて実行する
buildout は make するのと同じ
- Q: buildbot はやっぱり難しいの?
A: Jenkins の用途と buildbot の用途は違う
Jenkins はもともと単一プラットフォーム/バージョンで簡単にテストするような使い方で、操作のインテグレーションやビジュアルが良い
Jenkinsの開発者は多いのでもそのうち buildbot の長所もカバーするかも?
buildbot の開発は少人数、CUI 系の設定しかない(長所であり短所でもある)
- Q: Plone のテストとかはどうするの?
A: ビルドスレーブはプラットフォーム単位で分かると良い
テストの負荷分散目的でビルドスレーブを分けるのも良い
- Q: Jenkins でプラットフォームごとのテストはできる?
A: マスターサーバから各環境にsshで接続してできる
ビルドスレーブからマスターにつなぎに行くbuildbotとは主従関係が逆
- Q: buildbot で GUI やインタフェース系のテストはできる?
A: できる、SeleniumRCを使えばWeb アプリのテストも可能
pywinauto でボタン押したりのテストもできる
- Q: JS のテストはできる?
A: JSUnitとか、Seleniumとか、いろいろあるよ
出来るけど、buildbotの仕事ではないのでSeleniumRC等で外だしする方式で。
- Q: socket のテストとかはどうするの?
A: ホワイトボックステストでソケットのダミーを立ち上げて、入出力を比べるなど
もしくは、実際のソケット通信を記録しておいて、それを使ってテストすると、テストデータ作成の手間も省けて良さそう
参考¶
Togetter: http://togetter.com/li/136981