WordPressプラグインやWP-CLIのテストに使えるDocker環境”wpenv”を試してみた

wpenv – A Docker based testing environment for WordPress. Facebookでシェアされていたのを見て気になったので、飛行機待ちの間にとりあえず起動させ […]

広告ここから
広告ここまで

目次

    wpenv – A Docker based testing environment for WordPress.

    Facebookでシェアされていたのを見て気になったので、飛行機待ちの間にとりあえず起動させてみました。

    実行方法

    以下のようにcurlbashでスクリプトを取得・実行します。
    シェルコマンドの中では、docker pulldocker rundocker execの3つが実行されていますので、Docker for MacなどでDocker環境を動かせるようにしておきましょう。

    $ curl -L https://raw.githubusercontent.com/miya0001/wpenv/master/run.sh | bash -s 7.0 4.8.2 try
      % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                     Dload  Upload   Total   Spent    Left  Speed
    100  1235  100  1235    0     0   1885      0 --:--:-- --:--:-- --:--:--  1885
    + PHP_VERSION=7.0
    + WP_VERSION=4.8.0
    + CONTAINER_NAME=try
    + docker pull miya0001/phpenv:7.0
    7.0: Pulling from miya0001/phpenv
    bae382666908: Downloading [======================================>            ]  51.35MB/67.11MB
    29ede3c02ff2: Download complete 
    da4e69f33106: Download complete 
    8d43e5f5d27f: Downloading [==================================================>]     855B/855B
    
    <中略>
    
    
    + docker exec try sudo service mysql start
     * Starting MySQL database server mysqld
       ...done.
     * Checking for tables which need an upgrade, are corrupt or were 
    not closed cleanly.
    + docker exec try ln -s /var/run/mysqld/mysqld.sock /tmp/mysql.sock
    + docker exec try mysql -u root -e 'GRANT ALL PRIVILEGES ON wp_cli_test.* TO "wp_cli_test"@"localhost" IDENTIFIED BY "password1";' -p1111
    + docker exec try bash -c 'echo "export WP_VERSION=4.8.0" >> /home/ubuntu/.bashrc'
    + '[' -e bin/install-wp-tests.sh ']'
    + echo -e 'SUCCESS!\nRun: docker exec -it try bash'
    SUCCESS!
    Run: docker exec -it try bash
    

    SUCCESS! Run: docker exec -it try bashが出ていればOKです。
    コンテナに入ってみると、MySQLがセットアップされていることが確認できます。

    $ docker exec -it try bash
    ubuntu@f9aeb8cbecf0:/wpenv$ sudo service mysql status
     * /usr/bin/mysqladmin  Ver 8.42 Distrib 5.5.57, for debian-linux-gnu on x86_64
    Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved.
    
    Oracle is a registered trademark of Oracle Corporation and/or its
    affiliates. Other names may be trademarks of their respective
    owners.
    
    Server version      5.5.57-0ubuntu0.14.04.1
    Protocol version    10
    Connection      Localhost via UNIX socket
    UNIX socket     /var/run/mysqld/mysqld.sock
    Uptime:         3 min 53 sec
    
    Threads: 1  Questions: 586  Slow queries: 0  Opens: 189  Flush tables: 1  Open tables: 41  Queries per second avg: 2.515
    

    スクリプト内のログイン情報でDBにも接続できています。

    $ mysql -u wp_cli_test -ppassword1            
    Welcome to the MySQL monitor.  Commands end with ; or \g.
    Your MySQL connection id is 50
    Server version: 5.5.57-0ubuntu0.14.04.1 (Ubuntu)
    
    Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved.
    
    Oracle is a registered trademark of Oracle Corporation and/or its
    affiliates. Other names may be trademarks of their respective
    owners.
    
    Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
    
    mysql> show databases;
    +--------------------+
    | Database           |
    +--------------------+
    | information_schema |
    +--------------------+
    1 row in set (0.00 sec)
    

    オプションなど

    コマンド実行時にPHP/PHPUnitとWordPressのバージョン、そしてDockerのコンテナ名を指定できます。

    $ curl -L https://raw.githubusercontent.com/miya0001/wpenv/master/run.sh | bash -s <tag> [wp_version] [container-name]
    

    PHP / PHPUnitのバージョンについては、wpenv#the-list-of-available-tagsから確認できます。

    使い所など

    README.mdに記載されていますが、WordPressプラグインのユニットテスト環境WP-CLIでのbehatテスト向けに作られている様子です。

    ですのでTravisCIやCircleCIなどのCIサービス上で走らせるテストのためにWordPressが必要になった場合は、これを使うようにすると良さそうです。

    広告ここから
    広告ここまで
    Home
    Search
    Bookmark