@ka2n

Technology and beer

サーバと連携するアプリのテストを楽にするためにやっていること

できるだけビルドせずにいろいろ変更できると楽だよね、 ということでFacebookのTweaksを紹介したのだけどそれに関連する話題。 サーバサイドの開発中に作っているAPIをアプリでとりあえず試したいという時に以下のようなアプローチをとっている。

今のチームではサーバサイドの開発用に通称ブランチ君という仕組みがあってフィーチャーブランチ毎にドメインを分けてテスト環境を用意するようにしている *1*2

テスト環境の一覧は http://dev.example.com/endpoints.jsonにアクセスすると一覧を取得できる様にしてある。*3

[
  {
    "branch": "master",
    "host": "master.dev.example.com"
  },
  {
    "branch": "some/feature_branch",
    "host": "some-feature-branch.dev.example.com"
  }
]

アプリではこれを読んで設定画面からホストを選択する。

f:id:ka2nn:20140402205548p:plain
こんな感じ

直接ホストを打ってもらうと結構間違えるのでそれだけでも手間が省ける。 こうしておくとリリース前のテストとかすごく楽。

こういうことを普通にやっている会社は多いと思うけどやっていないなら小規模なプロジェクトでも(でこそ)費用対効果は高いと思うのでおすすめです。

追記

とりあえずVagrant CloudのVagrant Shareを使ってテスト環境つくってfacebook/Tweaks · GitHub使えば手っ取り早い。

*1:Jenkinsが監視して、Capistranoがデータベースの作成やデプロイ先を準備して準備し終わった環境の設定値を環境変数等でアプリケーションに渡す感じ. ドメインはRoute53でワイルドカード指定できるのでそれを活用してる

*2:無事デプロイされたら妹っていうボットが教えてくれたりする。

*3:今は1台のサーバに各環境を同居させているので単純にディレクトリを調べてブランチ名一覧を作っている。