読者です 読者をやめる 読者になる 読者になる

Codeceptionのドキュメントの翻訳をはじめました。

日本のPHPerにもっとCodeceptionを知ってもらうため、ついに?立ち上がりました。タイトルのとおり、Codeceptionのドキュメントの翻訳をはじめました。 リポジトリ piccagliani/Codeception.docs.ja_JP · GitHub 日本語ドキュメント置き場 Codeception.docs.…

JenkinsとDockerを使い、WebアプリのE2Eテストをする

前回のエントリの続きです。 今回は単純なアプリのテストなので、Dockerfileもテスト手順もシンプルでした。 より複雑な手順が必要となる、Seleniumを利用したWEBアプリのE2Eテストなどもこの方式でできるのかどうか、引き続き実験してみます。 ということで…

JenkinsとDockerを使い、動作環境の異なるアプリをCIする

私が属する組織では受託開発がメインでして、サーバーやミドルウェアなどの要件を我々が自由に決定できないケースもしばしば。 基本はPHPなのですが、案件によってバージョンが異なったり、近頃ではNodeの案件なども出てきました。長いこと「CIサーバを導入…

【メモ】 CentOS6.5 + Docker + Jenkins用Vagrant シェルプロビジョニング

メモメモメモ.... sed: -e expression #1, char 41: unknown option to 's' のエラーにはまった... Vagrant provisioning: CentOS6.5 + Docker + Jenkins

マニュアルには載っていないCodeceptionのコツ/TIPS

バージョン2で入った新機能などを紹介するエントリなど書く書く詐欺をしていたら年末になってしまいました。 というか2014年、2つめのエントリ。。。。そんな今年は ZF2 x Codeception Laravel4 x Codeception を中心にお仕事をしておりました。社内における…

Codeceptionにバグ修正をプルリました。

久しぶりの更新です。Codeception、メジャーバージョンアップが近いです。楽しみです。ここのところ、Zend Framework2 + Codeception で開発をしていました。 その中でバグを2件見つけてPRしたので、参考までに。 1. input[type=image]をクリックした場合に…

CodeceptionとAspectMockを使って和田卓人さんの現在時刻に依存するテストを書いてみた

TLで話題になっているCodeIQでの問題と解説はこちらです。これであなたもテスト駆動開発マスター!?和田卓人さんがテスト駆動開発問題を解答コード使いながら解説します~現在時刻が関わるテストから、テスト容易性設計を学ぶ #tdd|CodeIQ MAGAZINE大変丁…

PhalconアプリケーションをCodeceptionでテストしてみた

先日、Codeceptionが1.8にバージョンアップされました。1.8での変更点の詳細は本家サイトを見ていただくとして、注目すべきは以下の2点。 Phalcon Framework の正式サポート Environments という概念の追加 1つ目は説明不要と思いますが、2つ目は前回のエ…

(Codeception + Selenium2) Acceptance Testに複数種類のブラウザを利用する

久しぶりの更新です。CodeceptionのAcceptance TestにSeleniumを利用する場合のTIPSになります。 とある場所にて、Codeceptionのレクチャーをした際に、「IE, ChromeでもAcceptance Testは可能ですか?」という質問をいただきましたので、ここにまとめておき…

(Codeception + Symfony2) セキュアなページに対するFunctional Test

How to simulate Authentication with a Token in a Functional Test (current) - Symfony に書かれている内容をCodeceptionではどのように実現するか。 1. 専用のHelperを書く

HWIOAuthBundleを使ってSymfony2でOAuth認証を実装する(EntityUserProvider)

HWIOAuthBundleを使ってSymfony2でOAuth認証を実装するの続編です。今回はアプリ側にユーザー情報を格納するテーブルがあることを前提に、OAuth認証によって得られた情報と連携させてみます。実現したい内容としては、以下となります。 ログイン用のリンクを…

HWIOAuthBundleを使ってSymfony2でOAuth認証を実装する

しばらくCodeceptionネタが続く予定だったのですが、Symfony2 + OAuth認証で結構はまったのでシェアしておきます。FacebookやTwitterやGoogleなど、ソーシャルアカウントでログインする機能を作成したい場合、各ベンダーが提供しているAPIを利用することもで…

Codeceptionを使ってTDD Boot Camp 大阪 2.0/課題に挑戦してみた

しばらくはCodeceptionネタが続きます。社内でTDDの勉強会をする機会があり、課題としてTDD Boot Campのものを利用させていただきました。 どうせなら、ということでCodeceptionを使って挑戦してみました。ユニットテストのみで、あまりCodeceptionの旨味は…

Codeceptionを使ってみた(3) Functionalテスト

前回はFizzBuzzのUnitテストを書きました。前回までは単にFizzBuzzを生成できるようになったものの、 アプリケーションとしては成り立っていないので、 今回はコンソール出力するアプリケーションを作成し,そのテストを書いてみます。 また、コードカバレッ…

Codeceptionを使ってみた(2) Unitテスト

前回は Codeceptionを使ってみた(1) - think it over簡単なCLIアプリケーションをテストしてみようと思います。 前回の予告どおり、題材はFizzBuzz問題を取り上げてみます。今回はFizzBuzzを生成する箇所のUnitテストを書いています。 1. テスト対象の作成…

Codeceptionを使ってみた(1) 導入

個人的に大注目しているPHP用のテスティングフレームワークCodeception - BDD-style PHP testing.を試しています。 まだ日本語情報が少ないですが、以下のコードを見て一発で気に入ってしまいました。 am('testing framework'); $I->wantToTest('your web ap…

Gitのワークフロー・運用ルールを決める上で参考になるサイトたち

Git

必見 こわくない Git A successful Git branching model » nvie.com GitHub Flow – Scott Chacon GitHub Flow (Japanese translation) Git で日々の共同作業やリリース作業をサポートする git-daily を作りました | GREE Engineers' Blog 先人の知見 Git の…

Symfony2プロジェクトをGitLabで管理してVagrantで立てたJenkinsでCIする(番外)

番外編です。 Jenkinsのチャートの文字化けを修正する チャートの日本語がいわゆる「豆腐」状態になってしまっていると思います。 http://shunirr.hatenablog.jp/entry/2013/01/10/175426 http://d.hatena.ne.jp/mallowlabs/20120316/jenkins_tofu を参考に…

Symfony2プロジェクトをGitLabで管理してVagrantで立てたJenkinsでCIする(6)

第6回です。 前回のおさらい イテレーション D: JenkinsでCIするJenkinでプロジェクトをビルドできるようになりました。 今回の内容 PHPMDやPHPCS等の各種ツールを導入し、Jenkinsと連携してみます。 いまどこ? イテレーション 0: 準備 タスク 0-1: 必…

Symfony2プロジェクトをGitLabで管理してVagrantで立てたJenkinsでCIする(5)

第5回です。 前回のおさらい イテレーション C: JenkinsをVagrantで構築する世に公開されているcookbooksをかき集めてJenkinsを立ち上げました。 今回の内容 いよいよプロジェクトをJenkinsに設定し、CIしてみます。 いまどこ? イテレーション 0: 準備 …

Symfony2プロジェクトをGitLabで管理してVagrantで立てたJenkinsでCIする(4)

第4回です。 前回のおさらい イテレーション B: PhingでプロジェクトをビルドするPhingビルドツールを導入し、PHPUnitをPhingから実行できるようになりました。 今回の内容 Vagrantを利用してJenkinsを構築します。 いまどこ? イテレーション 0: 準備 タ…

Symfony2プロジェクトをGitLabで管理してVagrantで立てたJenkinsでCIする(3)

第3回です。 前回のおさらい イテレーション A: Symfony2でプロジェクトをはじめるSymfony2のプロジェクトをGitLabで管理し、PHPUnitを単体で実行できるようになりました。 今回の内容 Phingビルドツールを導入し、PHPUnitをPhingから実行できるようにしま…

Symfony2プロジェクトをGitLabで管理してVagrantで立てたJenkinsでCIする(2)

第2回です。 前回のおさらい イテレーション 0: 準備必要となるソフトウェアのインストール等、進めるための準備をしました。 今回の内容 Symfony2のプロジェクトを作成し、GitLabで管理します。また、PHPUnitを導入してテストを実行できるようにします。 …

Symfony2プロジェクトをGitLabで管理してVagrantで立てたJenkinsでCIする(1)

Vagrantを触ってみた - think it overにも書いたように、 Web開発にまつわる開発環境を「モダンないい感じ」にしたい!!! という目的でこれまでいろいろと調査・実践してきました。その総集編を複数回に分けて取り纏めてみようと思います。題して、Symfony…

Vagrantとchef-soloでCentOS6.4にPHP5.4を入れる

調べても「どんぴしゃ!」な情報がなかったのでまとめておきます。 1.前提情報 OS Windows 7 Vagrant Vagrant version 1.0.7 利用するbox CentOS 6.4 x86_64 Minimal (VirtualBox Guest Additions 4.2.8, Chef 11.4.0, Puppet 3.1.0) 2.下ごしらえ boxを…

クロスドメインなiframeの高さを自動調整する(easyXDM版)

クロスドメインなiframeの高さを自動調整する(Porthole版) - think it overにて、IEにおける動作に不安があったので、代替のeasyXDMについても試してみました。 1.easyXDMとは、 easyXDM is a Javascript library that enables you as a developer to ea…

クロスドメインなiframeの高さを自動調整する(Porthole版)

(2013/04/03 16時20分 追記) IE系はこのエントリのコードでは全滅だった・・・・。しくしく。 (2013/04/03 16時50分 追記) IE9以上は動くようになった。 1.やりたいこと クロスドメインなiframeの高さを自動調整したい! 2.前提情報 通常、iframeのsrcが…

Vagrantでsandboxを利用する

Saharaはコマンドラインから仮想マシンの状態をsandboxモード(変更をいつでも巻き戻せる)に変更できるプラグインだ。これを使うことで、例えばchefのレシピ作成やミドルウェアのインストールの評価などがやりやすくなる。 http://www.ryuzee.com/contents/bl…

Vagrantを触ってみた

きっかけ Web開発にまつわる開発環境を「モダンないい感じ」にしたい!!!「モダンないい感じ」にはいろいろ含まれますが、階層的に下の方から。devops界隈も盛り上がっていることですし、お近づきになりたい! 1.前提情報 OS Windows 7 ruby ruby 1.9.3p…

jqueryを使い、ajaxでscriptタグを含む部分HTMLを取得すると、IEのみでエラーとなる

手元の再現環境 jquery 1.7.2 Windows 7 + IE 7, 8, 9, 10 前提 <html> <head> <meta charset="UTF-8"> <title>test</title> </head> <body> <div id="contents"></div> </body> </html> というHTMLがあり、#contentsの中身は以下のスクリプトによって非同期に取得する。 $(document).ready(function() { $.ajax({ url: "/get_contents", type: "GET"…

【ニコニコカレンダー for Redmine 2.X】 本家のPlugins Directoryに登録してみた

本家に登録してみた。 Niko-niko Calendar plugin for Redmine 2.X - Plugins - Redmine実はこういうのは初めての経験なので、内心ドキドキ、ヒヤヒヤしています。よろしければ、どうぞ。 これまでの歩み 【ニコニコカレンダー for Redmine 2.X】 初日 - thi…

【ニコニコカレンダー for Redmine 2.X】 公開!

公開しました。piccagliani/redmine_nikoniko_calendar2 · GitHubRedmineバージョン1系のプラグインを作られた方は、プラグイン自体の設定だったり、データの保持期間の設定だったり、いろいろ考えられて作ってらっしゃいますが、そこらへんは今後に期待、…

【ニコニコカレンダー for Redmine 2.X】 5日目

うわぁ、本業が忙しい。さて、しばらく離れていた間に、なんと、このブログを呟いてくださっている方がいらっしゃいました!!大変有り難いことです。亀のようにのろいペースですが、 月の切り替えできるようにしないと! メンバーのロールによって絞り込め…

はじめてRailsアプリをHerokuにデプロイしたときに大きくつまった2点

そんな暇あったら、ニコニコカレンダーを進めろよ、と思うのですが、 せっかくなので、Railsの勉強もしたい!!Windows環境で、Railsアプリを作って、Herokuにデプロイするところまで、Learn Web Development with the Ruby on Rails Tutorialを教科書にして…

sphinxでtsv-tableできなかった!(後編)

sphinxでtsv-tableできなかった!(前編) - think it overで、csv-tableと同等の機能を持つtsv-tableの作成までできました。 後編では断念するまでの経緯をまとめておこうかと。 csv-tableの実装を確認 前編でも触れましたが、 /usr/lib/python2.7/site-pac…

サブディレクトリでSymfonyを運用する際のjs, cssのパス

Symfony 1.X系のお話です。ちょっとはまったので。。。 サブディレクトリにフロントコントローラがある場合に、view.ymlに stylesheets: - /common/css/jquery/jquery.loadmask.css: { media: all } - /common/css/jquery/jquery-ui-1.8.16.custom.css: { me…

vmstatの結果をgnuplotでグラフ化する

tipsです。 vmstatの結果をファイルに出力 vmstat -n -S m -a 1 | awk '{print strftime("%H:%M:%S"), $0} { system(":") }' >> vmstat.log リダイレクトがうまくいかず、調べたところ、 (今さら) vmstat の結果に時間をつけてファイルに出力する - あしの…

sphinxでtsv-tableできなかった!(前編)

きっかけは sphinxでtsv-tableしたい! - think it over結論から言うと、ディレクティブにコンテンツが渡ったときにはすでにタブはスペースに変換されておりました。。。あきらめきれないので、そこまで行き着くまでの流れを備忘録的にまとめておきます。長…

sphinxでtsv-tableしたい!

docutilsのディレクティブに「csv-table」という、csvをtableに変換してくれる便利なやつがいます。ただ、 区切り文字にタブを指定した場合はデータを別ファイルとして用意してね セル内で改行できないよ など、いろいろと制限があり、、、tsv-tableほしいな…

【ニコニコカレンダー for Redmine 2.X】 4日目

ニコニコカレンダー、プロジェクト単位の表示を実装中です。シンプルですが、月単位で、メンバーのニコニコ度合いが閲覧できるようになりました。メンバーが毎日ちゃんと記録していれば、遠目で見たときの色の割合で、なんとなく、プロジェクトが健全かどう…

SVNのコミットログを編集可能にする

SVN

という依頼がありました。確認したところ、カメさんSVNにて「ログメッセージを編集」を行うと、以下のようなエラーが表示される。 「『pre-revprop-change』フックが機能不全」とのことなので、リポジトリのhooksを確認すると、「pre-revprop-change.tmpl 」…

【ニコニコカレンダー for Redmine 2.X】 3日目

だいぶ時間が経ってしまった・・・。スモールスタートで、まずは自分のニコニコカレンダーを記録できるところを目指しておりました。 このような感じに仕上がっております。右側のチャート部分には 表示月の「ニコニコ度(ムードや気持ち)」の平均値(「ニ…

【ニコニコカレンダー for Redmine 2.X】 2日目

前回でざっくりプラグイン開発の準備が整ったので、まずはニコニコカレンダーの機能を妄想してみる。ニコニコカレンダーに求める機能として、ただ単に日々のニコニコ度(ムードや気持ち)を記録していくだけでなく、 可能な限り毎日最高の状態で仕事に望める…

【ニコニコカレンダー for Redmine 2.X】 初日

Redmineのプラグイン開発ってどうやるんだべー、ということで、まずは Plugin Tutorial - Redmine プラグイン開発ガイド - r-labs に軽く目を通す。必要なものはRedmine(およびベースになっているRails?)がスケルトンを生成してくれるのね。さすがです。 …

ニコニコカレンダー for Redmine 2.X 開発開始

社内のチケット管理システムとしてredmineを使用している。構築の際に、 ニコニコカレンダーとは、チームのムード、メンバーの気持ちやヤル気を見える化するツール http://www.geocities.jp/nikonikocalendar/index_ja.html をredmine上で実現するためのプラ…

PHPからGoogle SpreadsheetをCSVで取得する

ちょっとばかし面倒な作業を自動化するため、 PHPからGoogle SpreadsheetをCSVで取得してみた。 username = $username; $this->password = $password; } protected function authenticate($…

iOS6にてPOSTによるAjaxがキャッシュされる!?

iOS6のSafariでWebサイトが正しく動作しない問題がかなり深刻・・ - NAVER まとめ等で報告されている事象の一部にぶちあたった。それは、、、 問題その1. AjaxのPOSTがキャッシュされる とある見積サイトにて、ユーザーの入力内容と最終的な見積金額が合わ…

Oracle復旧

仮復旧:ORA-01261 からの ORA-12514 - think it over ディスク復旧したよ! やっぱりデータは無くなったよ! との連絡を受け、Oracleの復旧、本番。 REDOログの復旧 仮復旧で強引に初期化パラメータからREDOログ多重化設定の一部(db_create_online_log_des…

ORA-01261 からの ORA-12514

朝っぱらからOracleに接続できない、という報告を受け、調査。エラー内容を確認したところ、 ORA-12514: TNS: リスナーは接続記述子でリクエストされたサービスを現在認識していません であった。なぜ突然に!?まずはlsnrctlで確認。 > lsnrctl status ・・…

はじめてのSphinx

開発系のドキュメントを作成する必要があり、気になっていたSphinxを試してみた。 Sphinxをはじめよう :: ドキュメンテーションツール スフィンクス Sphinx-users.jp インストール すでにWindows + Cygwin + Python 2.6.8の環境が手元にあったので、インスト…