132 lines
3.9 KiB
PHP
Executable File
132 lines
3.9 KiB
PHP
Executable File
<?php
|
|
/**
|
|
* pakeTest.php
|
|
* @package gulliver.bin.tasks
|
|
*
|
|
* ProcessMaker Open Source Edition
|
|
* Copyright (C) 2004 - 2011 Colosa Inc.23
|
|
*
|
|
* This program is free software: you can redistribute it and/or modify
|
|
* it under the terms of the GNU Affero General Public License as
|
|
* published by the Free Software Foundation, either version 3 of the
|
|
* License, or (at your option) any later version.
|
|
*
|
|
* This program is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
* GNU Affero General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU Affero General Public License
|
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
*
|
|
* For more information, contact Colosa Inc, 2566 Le Jeune Rd.,
|
|
* Coral Gables, FL, 33134, USA, or email info@colosa.com.
|
|
*
|
|
*/
|
|
|
|
|
|
|
|
pake_desc('launch unit tests');
|
|
pake_task('test-unit', 'project_exists');
|
|
|
|
pake_desc('launch functional tests for an application');
|
|
pake_task('test-functional', 'project_exists');
|
|
|
|
pake_desc('launch all tests');
|
|
pake_task('test-all', 'project_exists');
|
|
|
|
/**
|
|
* Function run_test_all
|
|
* access public
|
|
*/
|
|
|
|
function run_test_all($task, $args)
|
|
{
|
|
require_once(sfConfig::get('sf_symfony_lib_dir').'/lime/lime.php');
|
|
|
|
$h = new lime_harness(new lime_output_color());
|
|
$h->base_dir = sfConfig::get('sf_test_dir');
|
|
|
|
// register all tests
|
|
$finder = pakeFinder::type('file')->ignore_version_control()->follow_link()->name('*Test.php');
|
|
$h->register($finder->in($h->base_dir));
|
|
|
|
$h->run();
|
|
}
|
|
|
|
function run_test_functional($task, $args)
|
|
{
|
|
if (!count($args))
|
|
{
|
|
throw new Exception('You must provide the app to test.');
|
|
}
|
|
|
|
$app = $args[0];
|
|
|
|
if (!is_dir(sfConfig::get('sf_app_dir').DIRECTORY_SEPARATOR.$app))
|
|
{
|
|
throw new Exception(sprintf('The app "%s" does not exist.', $app));
|
|
}
|
|
|
|
if (isset($args[1]))
|
|
{
|
|
foreach (array_splice($args, 1) as $path)
|
|
{
|
|
$files = pakeFinder::type('file')->ignore_version_control()->follow_link()->name(basename($path).'Test.php')->in(sfConfig::get('sf_test_dir').DIRECTORY_SEPARATOR.'functional'.DIRECTORY_SEPARATOR.$app.DIRECTORY_SEPARATOR.dirname($path));
|
|
foreach ($files as $file)
|
|
{
|
|
include($file);
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
require_once(sfConfig::get('sf_symfony_lib_dir').'/lime/lime.php');
|
|
|
|
$h = new lime_harness(new lime_output_color());
|
|
$h->base_dir = sfConfig::get('sf_test_dir').'/functional/'.$app;
|
|
|
|
// register functional tests
|
|
$finder = pakeFinder::type('file')->ignore_version_control()->follow_link()->name('*Test.php');
|
|
$h->register($finder->in($h->base_dir));
|
|
|
|
$h->run();
|
|
}
|
|
}
|
|
|
|
function run_test_unit($task, $args)
|
|
{
|
|
$environment = isset ( $arg[1] ) ? $arg[1] : G_TEST_ENV;
|
|
printf("start test in %s environment\n", pakeColor::colorize( $environment, 'INFO'));
|
|
define ( 'G_ENVIRONMENT', $environment );
|
|
|
|
if (isset($args[0]))
|
|
{
|
|
foreach ($args as $path)
|
|
{
|
|
$pathUnit = PATH_CORE . 'test' . PATH_SEP . 'unit' . PATH_SEP . dirname($path);
|
|
$files = pakeFinder::type('file')->ignore_version_control()->follow_link()->name(basename($path).'Test.php')->in( $pathUnit );
|
|
foreach ($files as $file)
|
|
{
|
|
$fName = str_replace ( PATH_CORE . 'test' . PATH_SEP . 'unit' . PATH_SEP , '', $file );
|
|
printf("\ntesting %s \n", pakeColor::colorize( $fName, 'INFO'));
|
|
include($file);
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
|
|
require_once( PATH_THIRDPARTY . '/lime/lime.php');
|
|
$h = new lime_harness(new lime_output_color());
|
|
$h->base_dir = $pathUnit = PATH_CORE . 'test' . PATH_SEP . 'unit';
|
|
// $h->base_dir = $pathUnit = PATH_CORE . 'test' . PATH_SEP . 'unit' . PATH_SEP . "processmaker";
|
|
|
|
// register unit tests
|
|
$finder = pakeFinder::type('file')->ignore_version_control()->follow_link()->name('*Test.php');
|
|
$h->register($finder->in($h->base_dir));
|
|
|
|
$h->run();
|
|
}
|
|
}
|