Merge branch 'MDL-43461_26' of git://github.com/dmonllao/moodle into MOODLE_26_STABLE
This commit is contained in:
@@ -183,8 +183,8 @@ if ($options['install']) {
|
||||
mtrace("Acceptance tests site dropped");
|
||||
} else if ($options['enable']) {
|
||||
behat_util::start_test_mode();
|
||||
$runtestscommand = behat_command::get_behat_command() . ' --config '
|
||||
. $CFG->behat_dataroot . DIRECTORY_SEPARATOR . 'behat' . DIRECTORY_SEPARATOR . 'behat.yml';
|
||||
$runtestscommand = behat_command::get_behat_command(true) .
|
||||
' --config ' . behat_config_manager::get_behat_cli_config_filepath();
|
||||
mtrace("Acceptance tests environment enabled, to run the tests use:\n " . $runtestscommand);
|
||||
} else if ($options['disable']) {
|
||||
behat_util::stop_test_mode();
|
||||
|
||||
@@ -66,10 +66,30 @@ class behat_command {
|
||||
|
||||
/**
|
||||
* Returns the executable path
|
||||
*
|
||||
* Allows returning a customized command for cygwin when the
|
||||
* command is just displayed, when using exec(), system() and
|
||||
* friends we stay with DIRECTORY_SEPARATOR as they use the
|
||||
* normal cmd.exe (in Windows).
|
||||
*
|
||||
* @param bool $custombyterm If the provided command should depend on the terminal where it runs
|
||||
* @return string
|
||||
*/
|
||||
public final static function get_behat_command() {
|
||||
return 'vendor' . DIRECTORY_SEPARATOR . 'bin' . DIRECTORY_SEPARATOR . 'behat';
|
||||
public final static function get_behat_command($custombyterm = false) {
|
||||
|
||||
$separator = DIRECTORY_SEPARATOR;
|
||||
$exec = 'behat';
|
||||
|
||||
// Cygwin uses linux-style directory separators.
|
||||
if ($custombyterm && testing_is_cygwin()) {
|
||||
$separator = '/';
|
||||
|
||||
// MinGW can not execute .bat scripts.
|
||||
if (!testing_is_mingw()) {
|
||||
$exec = 'behat.bat';
|
||||
}
|
||||
}
|
||||
return 'vendor' . $separator . 'bin' . $separator . $exec;
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -144,21 +144,36 @@ class behat_config_manager {
|
||||
/**
|
||||
* Returns the behat config file path used by the steps definition list
|
||||
*
|
||||
* Note this can only be called from web-based scripts so it will return the
|
||||
* production dataroot not behat_dataroot. With this the steps definitions
|
||||
* list is accessible without having to install the behat test site.
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public static function get_steps_list_config_filepath() {
|
||||
global $USER;
|
||||
|
||||
// We don't cygwin-it as it is called using exec() which uses cmd.exe.
|
||||
$userdir = behat_command::get_behat_dir() . '/users/' . $USER->id;
|
||||
make_writable_directory($userdir);
|
||||
|
||||
return $userdir . '/behat.yml';
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the behat config file path used by the behat cli command.
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public static function get_behat_cli_config_filepath() {
|
||||
global $CFG;
|
||||
|
||||
$command = $CFG->behat_dataroot . DIRECTORY_SEPARATOR . 'behat' . DIRECTORY_SEPARATOR . 'behat.yml';
|
||||
|
||||
// Cygwin uses linux-style directory separators.
|
||||
if (testing_is_cygwin()) {
|
||||
$command = str_replace('\\', '/', $command);
|
||||
}
|
||||
|
||||
return $command;
|
||||
}
|
||||
|
||||
/**
|
||||
* Behat config file specifing the main context class,
|
||||
* the required Behat extensions and Moodle test wwwroot.
|
||||
|
||||
@@ -108,7 +108,9 @@ class Hint_ResultPrinter extends PHPUnit_TextUI_ResultPrinter {
|
||||
$executable = 'phpunit';
|
||||
if (testing_is_cygwin()) {
|
||||
$file = str_replace('\\', '/', $file);
|
||||
$executable = 'phpunit.bat';
|
||||
if (!testing_is_mingw()) {
|
||||
$executable = 'phpunit.bat';
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -91,6 +91,30 @@ function testing_is_cygwin() {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns whether a mingw CLI is running.
|
||||
*
|
||||
* MinGW sets $_SERVER['TERM'] to cygwin, but it
|
||||
* can not run .bat files; this function may be useful
|
||||
* when we need to output proposed commands to users
|
||||
* using Windows CLI interfaces.
|
||||
*
|
||||
* @link http://sourceforge.net/p/mingw/bugs/1902
|
||||
* @return bool
|
||||
*/
|
||||
function testing_is_mingw() {
|
||||
|
||||
if (!testing_is_cygwin()) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (!empty($_SERVER['MSYSTEM'])) {
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Mark empty dataroot to be used for testing.
|
||||
* @param string $dataroot The dataroot directory
|
||||
|
||||
Reference in New Issue
Block a user