<?php
/*
* Licensed to the Apache Software Foundation ( ASF ) under one
* or more contributor license agreements . See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership . The ASF licenses this file
* to you under the Apache License , Version 2 . 0 ( the
* " License " ) ; you may not use this file except in compliance
* with the License . You may obtain a copy of the License at
*
* http : / / www . apache . org / licenses / LICENSE - 2 . 0
*
* Unless required by applicable law or agreed to in writing ,
* software distributed under the License is distributed on an
* " AS IS " BASIS , WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND , either express or implied . See the License for the
* specific language governing permissions and limitations
* under the License .
*/
// keep BC with PHPUnit versions < 6
if (!class_exists('PHPUnit_Framework_TestSuite' )) {
class PHPUnit_Framework_TestSuite extends PHPUnit\Framework\TestSuite {}
}
/**
* Generic test suite containing tests based on the provided CLI parameters ,
* see { @ link NetBeansSuite : : toRun ( ) } for more information .
*
* For directory : < br / >
* Recursively scans the test - directory and it ' s
* sub - directories . All found unit - tests will be
* added and executed .
*
* For file : < br / >
* Just the file is added .
*
* To run this suite from CLI : phpunit NetBeansSuite . php - - run = < file - or - directory >
*
* < b > WARNING : User changes to this file should be avoided . < / b >
*
* @ package NetBeans
*/
class NetBeansSuite extends PHPUnit_Framework_TestSuite {
/**
* The name of the environment variable containing the file or directory to be run by PHPUnit .
* @ see toRun ( )
*/
const ENV_RUN = "NB_PHPUNIT_RUN" ;
/**
* Suite factory .
*
* This function creates a PHPUnit test - suite ,
* scans the directory for test - cases ,
* adds all test - cases found and then returns
* a test - suite containing all available tests .
*
* @ access public
* @ static
* @ return NetBeansSuite
*/
public static function suite() {
$suite = new NetBeansSuite();
foreach (self::toRun() as $file) {
$suite->addTestFile($file);
}
return $suite;
}
/**
* Tries to find { @ link # ENV_RUN ) in environment variables and returns array of files to be run by PHPUnit
* or throws Exception if no such variable found or directory / file does not exist .
*
* @ access private
* @ static
*
* @ return array an array of files to be run by PHPUnit
* @ see ENV_RUN
*/
private static function toRun() {
$run = getenv(self::ENV_RUN);
if ($run === null) {
throw new Exception(sprintf("No environment variable to run (%s) found.", self::ENV_RUN));
}
$result = array ();
foreach (explode(";" , $run) as $part) {
if (is_dir($part)) {
$result = array_merge($result, self::rglob("*[Tt]est.php" , $part.DIRECTORY_SEPARATOR));
} elseif (is_file($part)) {
$result[] = $part;
} else {
throw new Exception(sprintf("Argument '%s' neither file nor directory.", $part));
}
}
return $result;
}
/**
* Recursive { @ link http : / / php . net / manual / en / function . glob . php glob ( ) } .
*
* @ access private
* @ static
*
* @ param string $ pattern the pattern passed to glob ( ) , default is " * "
* @ param string $ path the path to scan , default is
* { @ link http : / / php . net / manual / en / function . getcwd . php the current working directory }
* @ param int $ flags the flags passed to glob ( )
* @ return array an array of files in the given path matching the pattern .
* @ link http : / / php . net / manual / en / function . glob . php
* @ link http : / / php . net / manual / en / function . getcwd . php
*/
private static function rglob($pattern = '*' , $path = '' , $flags = 0 ) {
$paths = glob($path.'*' , GLOB_MARK | GLOB_ONLYDIR | GLOB_NOSORT) or array ();
$files = glob($path.$pattern, $flags) or array ();
foreach ($paths as $path) {
$files = array_merge($files, self::rglob($pattern, $path, $flags));
}
return $files;
}
}
?>
Messung V0.5 in Prozent C=89 H=97 G=93
¤ Dauer der Verarbeitung: 0.12 Sekunden
(vorverarbeitet am 2026-06-10)
¤
*© Formatika GbR, Deutschland