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

2016年12月だけどVagrant環境でのLAMP環境構築時に嵌った

やりたかったこと

  • Mac(ホストOS)側でコード編集
  • ApacheVagrantで起動したLinux(ゲストOS)上で起動
  • Apacheが起動しているLinuxに対してChromeよりアクセスしてページ確認
  • Perfect PHP参考にしている

パーフェクトPHP (PERFECT SERIES 3)

パーフェクトPHP (PERFECT SERIES 3)

関連ファイル構成

  • Linux環境管理repository
    • ../repo/build-infra/Vagrantfile
  • コード管理repository
    • ../repo/pphp_framework/application

設定関連

  • Vagrantfileのfolder_syncで下記を設定
      config.vm.synced_folder "../pphp_framework/application", "/var/www/html", nfs: true
  • あとは本を参考にApacheのVirtual Host設定

Linuxに割り当てているIPにアクセスした結果

  • 動いてない!
  • 仕方なくMac内でApache起動して試してみた
    • あーどうやらファイル名の誤記とtypoが1箇所
    • 直したら表示された!
    • …って、エラー出るじゃん!
    • Linuxでやってたとき出てない!

調べた

  • php.iniのdispray_errors = Onにすればいいのね
  • php.iniどこ?
  • あ、phpinfo()で出せばいいのね

設定した

f:id:litencatt:20161211161841p:plain - エラーが出た(誤記等修正前に戻して確認)

結論:エラー表示設定いる

参考

Selenium使って書いたE2EテストをPoltergeistにしたらハマった2

昨日の続き。

さらに調査したところ、wait_for_ajaxを入れてもダメそうだった。

その前にJavascriptで記述されている箇所でDOM使ってフォームから入力値を取得してるのだけれど、そこの値が取れてない…。

jQuery形式での取得に変えてみたり色々試してみたが、実行毎に動作が変わるとは言わないが、driverをPoltergeistで実行した場合はJavascriptの処理内で入力値がちゃんと取得できていないようでお手上げ状態。

E2Eテストサクッと行けるかと思いきやハマるハマる。

明日もう一度仕切り直して一から調査できたらいいなとは思っています。

 

(2016/12/11追記)

チームで相談した結果、そのままSeleniumで試験するようにしました。

Selenium使って書いたE2EテストをPoltergeistにしたらハマった

最近E2Eテスト書いてます。

環境としてはPHPのコードに対してRSpec + Capybara + Poltergeist with PhantomJSと言った感じです。

今テストしているコード内にJavascriptでsubmitする処理にajaxが使われている箇所があったのですが、ここを普通にexecute_script()しても画面遷移が実行されずに今日一日色々と調べてたのですが、まだ解決には至ってません。

タイトルにある通り、最初はSeleniumを使ってテストの動作確認していて、

ほぼOKの動作となったところでPoltergeistに変えたところ、うまくテストが動作してないといったフローでした(泣)

 

このあたりを明日改めて試してみようかなと思ってます。

CapybaraのJSテストがrandom failする

 

 

PHP開発のためにやったターミナル周りからVim設定まとめ