diff --git a/.travis.yml b/.travis.yml index 59219b8e87fc5036c5cadbf80a1b36f51e3d37ff..4ee44be4cfb41842d020bff5fb8b094a8edaa2ea 100644 --- a/.travis.yml +++ b/.travis.yml @@ -40,14 +40,14 @@ script: - > echo; echo "Running unit tests"; - ./bin/phpunit -c typo3/sysext/core/Build/UnitTests.xml + ./bin/phpunit --colors -c typo3/sysext/core/Build/UnitTests.xml - > echo; export typo3DatabaseName="typo3"; export typo3DatabaseHost="localhost"; export typo3DatabaseUsername="root"; export typo3DatabasePassword=""; - grep directory typo3/sysext/core/Build/FunctionalTests.xml | awk '{print $1}' | sed 's%<directory>\(\.\./\)*\(typo3/sysext.*\)</directory>$%\2%g' | parallel --gnu 'echo; echo "Running functional {} tests"; ./bin/phpunit -c typo3/sysext/core/Build/FunctionalTests.xml {}' + grep directory typo3/sysext/core/Build/FunctionalTests.xml | awk '{print $1}' | sed 's%<directory>\(\.\./\)*\(typo3/sysext.*\)</directory>$%\2%g' | parallel --gnu 'echo; echo "Running functional {} tests"; ./bin/phpunit --colors -c typo3/sysext/core/Build/FunctionalTests.xml {}' - > echo; echo "Running php lint"; diff --git a/typo3/sysext/core/Build/FunctionalTests.xml b/typo3/sysext/core/Build/FunctionalTests.xml index 1705aa37fa26350bbc113686cfc63fd7f5f58a02..ee538fd09786612b6a23e31e202b87b7900a7f6c 100644 --- a/typo3/sysext/core/Build/FunctionalTests.xml +++ b/typo3/sysext/core/Build/FunctionalTests.xml @@ -11,7 +11,7 @@ backupGlobals="true" backupStaticAttributes="false" bootstrap="FunctionalTestsBootstrap.php" - colors="true" + colors="false" convertErrorsToExceptions="true" convertWarningsToExceptions="true" forceCoversAnnotation="false" diff --git a/typo3/sysext/core/Build/FunctionalTestsBootstrap.php b/typo3/sysext/core/Build/FunctionalTestsBootstrap.php index 8fca56f67cb40c085780c3eaaf15b24e8fb4efe6..cdecd3902364bc32e0e1ed313db486a93156b80a 100644 --- a/typo3/sysext/core/Build/FunctionalTestsBootstrap.php +++ b/typo3/sysext/core/Build/FunctionalTestsBootstrap.php @@ -53,6 +53,7 @@ if (getenv('TYPO3_PATH_WEB')) { } else { $webRoot = getcwd() . '/'; } +$webRoot = strtr($webRoot, '\\', '/'); if (!defined('ORIGINAL_ROOT')) { define('ORIGINAL_ROOT', $webRoot); diff --git a/typo3/sysext/core/Build/UnitTests.xml b/typo3/sysext/core/Build/UnitTests.xml index 49105b8906c7025b2a6bdfa8ea2ccd25b58f9859..7518119a06a57efa799d07015c133d11216380f7 100644 --- a/typo3/sysext/core/Build/UnitTests.xml +++ b/typo3/sysext/core/Build/UnitTests.xml @@ -2,7 +2,7 @@ backupGlobals="true" backupStaticAttributes="false" bootstrap="UnitTestsBootstrap.php" - colors="true" + colors="false" convertErrorsToExceptions="true" convertWarningsToExceptions="true" forceCoversAnnotation="false" @@ -82,4 +82,4 @@ <directory>../../../../typo3/sysext/core/Tests/Integrity/</directory> </testsuite> </testsuites> -</phpunit> \ No newline at end of file +</phpunit> diff --git a/typo3/sysext/core/Tests/FunctionalTestCase.php b/typo3/sysext/core/Tests/FunctionalTestCase.php index 61c5bdead0ce931c02d81569702fdd9469a25495..6b5d0e77f4ba37c7a44f997c6bf2d0b0fdac92a9 100644 --- a/typo3/sysext/core/Tests/FunctionalTestCase.php +++ b/typo3/sysext/core/Tests/FunctionalTestCase.php @@ -345,10 +345,20 @@ abstract class FunctionalTestCase extends BaseTestCase { $pageId = (int)$pageId; $languageId = (int)$languageId; + $phpExecutable = 'php'; if (defined('PHP_BINARY')) { $phpExecutable = PHP_BINARY; - } else { + } elseif (TYPO3_OS !== 'WIN' && defined('PHP_BINDIR')) { $phpExecutable = rtrim(PHP_BINDIR, '/') . '/php'; + } else { + foreach(explode(';', $_SERVER['Path']) as $path) { + $path = rtrim(strtr($path, '\\', '/'), '/') . '/'; + $phpFile = 'php' . (TYPO3_OS === 'WIN' ? '.exe' : ''); + if (file_exists($path . $phpFile) && is_file($path . $phpFile)) { + $phpExecutable = $path . $phpFile; + break; + } + } } $additionalParameter = ''; @@ -365,11 +375,19 @@ abstract class FunctionalTestCase extends BaseTestCase { 'requestUrl' => 'http://localhost/?id=' . $pageId . '&L=' . $languageId . $additionalParameter, ); - $commandParts = array( - escapeshellcmd($phpExecutable), - escapeshellarg(ORIGINAL_ROOT . 'typo3/sysext/core/Tests/Functional/Framework/Scripts/Request.php'), - escapeshellarg(json_encode($arguments)), - ); + if (TYPO3_OS !== 'WIN') { + $commandParts = array( + escapeshellcmd($phpExecutable), + escapeshellarg(ORIGINAL_ROOT . 'typo3/sysext/core/Tests/Functional/Framework/Scripts/Request.php'), + escapeshellarg(json_encode($arguments)), + ); + } else { + $commandParts = array( + escapeshellcmd($phpExecutable), + escapeshellarg(ORIGINAL_ROOT . 'typo3/sysext/core/Tests/Functional/Framework/Scripts/Request.php'), + strtr(escapeshellarg(strtr(json_encode($arguments), array('&' => '^&', '"' => '"""'))), ' ', '"""'), + ); + } $command = trim(implode(' ', $commandParts)); $response = shell_exec($command);