Add local configuration file for RoboFile.php

This commit is contained in:
Francesco Abeni 2015-10-29 11:12:58 +01:00
parent 930f4213dd
commit 04216cf96d
3 changed files with 44 additions and 1 deletions

1
.gitignore vendored
View File

@ -45,6 +45,7 @@ vendor/*
# Robo
robo.phar
RoboFile.ini
# Test related files
tests/acceptance.suite.yml

5
RoboFile.dist.ini Normal file
View File

@ -0,0 +1,5 @@
<?php
$configuration = array(
"skipClone" => true, // default is false
);

View File

@ -17,6 +17,8 @@ class RoboFile extends \Robo\Tasks
private $extension = '';
private $configuration = array();
/**
* Set the Execute extension for Windows Operating System
*
@ -40,6 +42,8 @@ class RoboFile extends \Robo\Tasks
*/
public function runTests($seleniumPath = null, $suite = 'acceptance')
{
$this->configuration = $this->getConfiguration();
$this->setExecExtension();
$this->createTestingSite();
@ -154,12 +158,16 @@ class RoboFile extends \Robo\Tasks
// Kill selenium server
// $this->_exec('curl http://localhost:4444/selenium-server/driver/?cmd=shutDownSeleniumServer');
}
/**
* Creates a testing Joomla site for running the tests (use it before run:test)
*/
public function createTestingSite()
{
if (!empty($this->configuration['skipClone'])) {
$this->say('Reusing Joomla CMS site already present at tests/joomla-cms3');
return;
}
// Get Joomla Clean Testing sites
if (is_dir('tests/joomla-cms3'))
{
@ -170,6 +178,35 @@ class RoboFile extends \Robo\Tasks
$this->say('Joomla CMS site created at tests/joomla-cms3');
}
/**
* Get (optional) configuration from an external file
*
* @return array
*/
public function getConfiguration()
{
$configurationFile = __DIR__ . '/RoboFile.ini';
if (!file_exists($configurationFile)) {
$this->say("No local configuration file");
return array();
}
try {
require_once $configurationFile;
if (!is_array($configuration)) {
$this->say('Local configuration file is empty or wrong (it must contain a $configuration array');
return array();
}
return $configuration;
}
catch (Exception $ex)
{
$this->say('Exception reading local configuration file: ' . $ex->getMessage());
return array();
}
}
/**
* Runs Selenium Standalone Server.
*