পিএইচপিউনিট বস্তুগুলি তৈরি করার জন্য একটি দুর্দান্ত এপিআই সরবরাহ করে যেখানে দ্রুপালের সহজতমটি হয় না। নেই এক গ্রন্থাগার Drupal এর 7 PHPUnit একীভূত জন্য সারকথা পাওয়া ।
এই স্ক্রিপ্টগুলি কার্যকর করতে আপনার এই গিস্ট-সংগ্রহস্থলটি চেকআউট করতে হবে । কমান্ড-লাইনে ইউনিট-টেস্টগুলি সম্পাদন করতে কেবল একটি দ্রুপাল সাইট (যেমন। <DRUPAL_ROOT>/sites/default
) এ যান এবং আপনি phpunit কমান্ডটি ঠিক যেমন dphpunit.bash ব্যবহার করুন।
স্ক্রিপ্টটিতে 3 টি ফাইল রয়েছে:
- dphpunit.bash - যা কেবলমাত্র কয়েকটি অতিরিক্ত পরামিতি সহ ড্রান-ডিএফপুনিট.পিএপকে ডাকে। এটি দরকার কারণ পিএইচপি সঠিকভাবে সিমলিঙ্কগুলি মোকাবেলা করতে অক্ষম।
- drun-dphpunit.php - এটি অতিরিক্ত প্যারামিটারটি পরিচালনা করে ব্যতীত মূলত প্রবাহিত phpunit রানার হিসাবে একই।
- bootstrap.inc.php - যা ড্রুপের সাথে ড্রুপলের বুটস্ট্র্যাপকে খুব মিল করে।
সূত্র: http://devblog.more-onion.com/content/writing-unit-tests-drupal-7
bootstrap.inc.php
<?php
$path = CWD;
$site_dir = NULL;
$dpl_dir = NULL;
while ($path != '/') {
if (file_exists($path . '/settings.php')) {
$site_dir = $path;
}
if (file_exists($path . '/index.php') && file_exists($path . '/includes/bootstrap.inc')) {
$dpl_dir = $path;
break;
}
$path = dirname($path);
}
if (!$dpl_dir) {
echo "No drupal directory found in or above current working directory. Aborting. \n";
exit(1);
}
if (!$site_dir) {
$site_dir = $dpl_dir . '/sites/default';
if (!file_exists($site_dir . '/settings.php')) {
echo "No configured site found. Aborting.\n";
exit(1);
}
}
$_SERVER['HTTP_HOST'] = basename($site_dir);
$_SERVER['REMOTE_ADDR'] = '127.0.0.1';
define('DRUPAL_ROOT', $dpl_dir);
set_include_path($dpl_dir . PATH_SEPARATOR . get_include_path());
require_once DRUPAL_ROOT . '/includes/bootstrap.inc';
drupal_bootstrap(DRUPAL_BOOTSTRAP_FULL);
dphpunit.bash
#!/bin/bash
# get dirname of the script
DIR="$(dirname $(readlink "$0"))"
# assume the boostrap script is stored in the same directory
php "$DIR/drun-phpunit.php" "$(pwd)" --bootstrap "$DIR/bootstrap.inc.php" "$@"
drun-phpunit.php
<?php
require_once 'PHP/CodeCoverage/Filter.php';
PHP_CodeCoverage_Filter::getInstance()->addFileToBlacklist(__FILE__, 'PHPUNIT');
if (extension_loaded('xdebug')) {
xdebug_disable();
}
if (strpos('/usr/bin/php', '@php_bin') === 0) {
set_include_path(dirname(__FILE__) . PATH_SEPARATOR . get_include_path());
}
require_once 'PHPUnit/Autoload.php';
define('PHPUnit_MAIN_METHOD', 'PHPUnit_TextUI_Command::main');
define('CWD', $_SERVER['argv'][1]);
unset($_SERVER['argv'][1]);
$command = new PHPUnit_TextUI_Command;
$command->run($_SERVER['argv']);
দ্রুপাল with এর সাথে পিএইচপিউনিটের একীকরণের জন্য আরও একটি গ্রন্থাগার রয়েছে: https://github.com/sebastianbergmann/phpunit
এই স্ক্রিপ্টগুলি সম্পর্কে আরও তথ্য এখানে চেক করা যেতে পারে: http://thomaslattimore.com/blog/using-phpunit-with-drupal-7