사용자 도구

사이트 도구


wordpress:unit_testing

문서의 이전 판입니다!


워드프레스 플러그인 유닛 테스팅

설치 과정

PHPUnit

Ubuntu 패키지로 PHP를 설치하면 PhpUnit 또한 패키지 매니저로 설치하는 것이 편리하다. 참고로 아래 코드는 vagrantwrapper provision 스크립트에 포함되었다.

참고로 아래 WP-CLI에서 요구하는 PHPUnit은 4.8.X 버전을 요구하므로 패키지 매니저를 통해 PHPUnit을 설치하는 것은 이 문서를 작성하는 2016년 1월 현재에는 적당하지 않다. 아래 스크립트처럼 직접 PHPUnit 을 받는 것이 적절하다.

wget https://phar.phpunit.de/phpunit-old.phar -O /usr/local/bin/phpunit
chmod +x /usr/local/bin/phpunit

WP-CLI

WP CLI는 앞으로 익혀 두는 것도 좋을 것 같다. 마찬가지로 아래 스크립트 또한 vagrantwrapper에 포함시켰다.

wget https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar -O /usr/local/bin/wp
chmod +x /usr/local/bin/wp

위 과정을 거치면 필요한 패키지는 설치가 완료된다.

다음 내가 평소 사용하는 워드프레스 환경에 맞춰서 WP-CLI가 동작을 하게 하려면 약간의 커스터마이징이 필요하다. 다음 포인트를 꼭 맞추고, WP-CLI config 문서를 참고하도록 한다.

  • CLI에서는 wp-config.php 에서 $_SERVER, $_SERVER['SERVER_NAME'] 항목은 사용할 수 없으므로 이 변수가 없을 경우를 대비한다.
  • 항상 wp-config.php 파일 내부에서 ABSPATH를 define 한다. 정확한 워드프레스 코어 파일을 지정하라.
  • require_once(ABSPATH . 'wp-settings.php'); 구문은 반드시 wp-config.php 에 위치시킨다. WP-CLI는 wp-config.php 파일 내부에서 이 라인을 직접 읽어 처리한다. 이 구문을 찾지 못하면 WP-CLI는 에러를 출력한다. https://github.com/wp-cli/wp-cli/wiki/FAQ 링크의 'PHP Fatal error: Cannot redeclare wp_unregister_GLOBALS()' 부분을 참고.

아래는 ~/.wp-cli/config.yml 의 예제이다.

path: /home/vagrant/shared/php/wordpress/wp-core
url: http://wordpress.vagrant:8080
user: changwoo
disabled_commands:
  - db drop

아래는 wp-config.php 의 예제이다.

<?php
 
if( !isset( $_SERVER ) || !isset( $_SERVER['SERVER_NAME'] ) ) {
	require( __DIR__ . "/wp-settings/wordpress.vagrant-config.php" );
} else {
	$domain = $_SERVER['SERVER_NAME'];
	require( __DIR__ . "/wp-settings/{$domain}-config.php" );
}
 
/** Absolute path to the WordPress directory. */
if ( !defined('ABSPATH') )
	define('ABSPATH', dirname(__FILE__) . '/wp-core/');
 
/** Sets up WordPress vars and included files. */
require_once(ABSPATH . 'wp-settings.php');

테스트 환경 만들기

WP-CLI를 이용하면 매우 간결하게 테스트 환경을 구비할 수 있다. 아래 명령을 통해 플러그인의 테스트 환경을 시작할 수 있다.

wp scaffold plugin-tests <plugin-name>

플러그인 디렉토리에 가 보면 다음과 같은 디렉토리가 부가적으로 생성된 것을 확인할 수 있다.

* bin/

  • install-wp-test.sh

* tests/

  • bootstrap.php
  • test-sample.php

* phpunit.xml * .travis.yml

테스트는 다음 명령으로 실행 가능하다.



참고 자료

wordpress/unit_testing.1453826362.txt.gz · 마지막으로 수정됨: 2016/01/26 16:39 저자 changwoo

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki