WordPress用Dockerコンテナの公式サポートが準備中

SPONSORED LINK

WordPressではGutenberg用にすでにe2eテストが採用されている。e2eとは、End to Endの略で、要するに実際にブラウザを立ち上げて、ログインできるか確認するというテストだ。利用されるツールは次のようなものがある。

  • Puppeteer: Chromeのヘッドレスモードを利用してブラウザを操作するツール
  • Jest: JavaScript用のテストツール
  • Jest Puppeteer: JestからPuppeteerを利用できるようにするツール

具体的なテストコードを紹介すると、次のようになる。

const { createURL } = require('@wordpress/e2e-test-utils')

describe('WordPress サイトのトップページをテストする', () => {
  // トップページに移動する
  beforeAll(async () => {
    const frontpageURL = createURL('/')
    await page.goto(frontpageURL)
  })
  // 検索が成功するかテスト
  test('検索ができる', async () => {
    await expect(page).toFillForm('form.search-form', { s: 'my-word' })
    await page.evaluate(() =>
      document.querySelector('form.search-form').submit()
    )
    await page.waitForNavigation({ waitUntil: 'domcontentloaded' })
    expect(page.url()).toContain('?s=my-word')
  })
});

これにより、実際にブラウザを利用するユーザーと同じ操作を反復的にテストすることで、変更への安定性を担保することができる。

このテストを特定の環境(e.g. staging.example.com)に向けて行うことは可能だが、普通はTravis や Circle CI などのテストサービスを利用して継続的インテグレーションを行うことが重要である。バックエンドで実行するためにはDockerなどのコンテナツールを使い、ローカルにテスト用のWordPressを立ち上げて、そのWordPressに対してテストを行う。WordPressコアもそうやって開発されている。

WordPressのTravisリポジトリ。E2Eテストが行われているのがわかる。

で、このDockerなのだが、そもそもWordPress開発のために使われているものなので、WordPress Trunkに含まれているテスト部分を切り出し、誰でも使えるようにできないか、との提案が出ている。

これがもし成功すれば、WordPressのローカル開発環境としてコアチームが正式にサポートするものができあがる。テーマやプラグインなどはそれぞれの作者がそれぞれにテスト環境を用意しており、そのほとんどで継続的インテグレーションが採用されていないはずだ。もしコアチームが正式にサポートするようになれば、開発環境の安定性が増し、テーマやプラグインなどの品質も向上するかもしれない。

現在、これらのローカル開発環境はTestPressとしてGitHub上で開発されている。興味がある方はのぞいてみてほしい。

開発環境の今後

開発環境の変遷は長く、MampやXamppといったツールが広く使われる一方で、VCCWやVVVのようなVagrantベースのツールが黒い画面耐性を持つ人々に支持されてきた。DockerベースではWockerなどもあったが、最近ではDockerベースでGUI付きのLocal by Flywheelが登場し、覇権争いで一歩抜きん出た印象である。

Localは現在オープンソース化を検討中で、多言語化(日本語対応!)やプラグインが実装しやすくなる。そうすると、レンタルサーバー各社は独自のプラグインをリリースし、自社サーバーと完璧に融合したLocalを提供することが可能になる。

WordPressコアチーム謹製のTestPressと、最近ビジネス的にブイブイ言わせているWP Engineの傘下に入ったLocal by Flywheel、どちらが覇権をとるのか、筆者は楽しみにしている。

Docker

Docker書籍

作者Adrian Mouat

クリエーターSky株式会社 玉川 竜司

発行オライリージャパン

発売日2016年8月17日

カテゴリー単行本(ソフトカバー)

ページ数384

ISBN4873117763

Dockerを学ぼうとすると、Kubernetesもセットで付いてくることが多いのだが、インフラエンジニア以外がそちらに手を出すと寿命が尽きるのでやめておこう。

Supported by amazon Product Advertising API

SPONSORED LINK

この記事を書いた人

高橋 文樹

小説家であり、WordPress開発者。WordCamp Tokyo 2016のリードオーガナイザー。山梨に土地を持ち、DIYで家を建てている。小説と家づくりとWordPress開発の3種競技があれば日本代表有力候補。KunoichiというWordPressテーマ・プラグインマーケットプレースを作成中。

Club Capital P

Club Capital PはCapital Pのファンクラブです。有料会員制となっており、Gumroad経由でサブスクリプションをご購入いただき、ライセンスキーを登録いただくことで、会員特典を受け取ることができます。