ltsecurityinc安防产品在线商城代码
This commit is contained in:
@@ -0,0 +1,96 @@
|
||||
<?php
|
||||
/**
|
||||
* Copyright © Magento, Inc. All rights reserved.
|
||||
* See COPYING.txt for license details.
|
||||
*/
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Magento;
|
||||
|
||||
use Magento\TestFramework\SkippableInterface;
|
||||
use Magento\TestFramework\Workaround\Override\Config;
|
||||
use Magento\TestFramework\Workaround\Override\WrapperGenerator;
|
||||
use PHPUnit\Framework\TestSuite;
|
||||
use PHPUnit\TextUI\TestSuiteMapper;
|
||||
use PHPUnit\TextUI\XmlConfiguration\Configuration;
|
||||
use PHPUnit\TextUI\XmlConfiguration\Loader;
|
||||
use PHPUnit\TextUI\XmlConfiguration\TestSuite as TestSuiteConfiguration;
|
||||
use PHPUnit\TextUI\XmlConfiguration\TestSuiteCollection;
|
||||
|
||||
/**
|
||||
* Web API tests wrapper.
|
||||
*/
|
||||
class WebApiTest extends TestSuite
|
||||
{
|
||||
/**
|
||||
* @param string $className
|
||||
*
|
||||
* @return TestSuite
|
||||
* @throws \ReflectionException
|
||||
* @SuppressWarnings(PHPMD.UnusedFormalParameter)
|
||||
*/
|
||||
public static function suite($className)
|
||||
{
|
||||
$generator = new WrapperGenerator();
|
||||
$overrideConfig = Config::getInstance();
|
||||
$configuration = self::getConfiguration();
|
||||
$suitesConfig = $configuration->testSuite();
|
||||
$suite = new TestSuite();
|
||||
foreach ($suitesConfig as $suiteConfig) {
|
||||
$suites = self::getSuites($suiteConfig);
|
||||
/** @var TestSuite $testSuite */
|
||||
foreach ($suites as $testSuite) {
|
||||
/** @var TestSuite $test */
|
||||
foreach ($testSuite as $test) {
|
||||
$testName = $test->getName();
|
||||
|
||||
if ($overrideConfig->hasSkippedTest($testName) && !$test instanceof SkippableInterface) {
|
||||
$reflectionClass = new \ReflectionClass($testName);
|
||||
$resultTest = $generator->generateTestWrapper($reflectionClass);
|
||||
$suite->addTest(new TestSuite($resultTest, $testName));
|
||||
} else {
|
||||
$suite->addTest($test);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return $suite;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns config file name from command line params.
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
private static function getConfigurationFile(): string
|
||||
{
|
||||
$params = getopt('c:', ['configuration:']);
|
||||
$longConfig = $params['configuration'] ?? '';
|
||||
$shortConfig = $params['c'] ?? '';
|
||||
|
||||
return $shortConfig ?: $longConfig;
|
||||
}
|
||||
|
||||
/**
|
||||
* Retrieve configuration.
|
||||
*
|
||||
* @return Configuration
|
||||
*/
|
||||
private static function getConfiguration()
|
||||
{
|
||||
return (new Loader())->load(self::getConfigurationFile());
|
||||
}
|
||||
|
||||
/**
|
||||
* Retrieve test suites by suite config.
|
||||
*
|
||||
* @param TestSuiteConfiguration $suiteConfig
|
||||
*
|
||||
* @return TestSuite
|
||||
*/
|
||||
private static function getSuites($suiteConfig)
|
||||
{
|
||||
return (new TestSuiteMapper())->map(TestSuiteCollection::fromArray([$suiteConfig]), '');
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user