webnazakazku/mango-tester-infrastructure
最新稳定版本:v0.7
Composer 安装命令:
composer require webnazakazku/mango-tester-infrastructure
包简介
README 文档
README
Testing hepler for testing Nette application with easy to use API.
Installation
The recommended way to install is via Composer:
composer require webnazakazku/mango-tester-infrastructure
It requires PHP version 7.1.
Integration & configuration
Example of using:
tests/bootstra.php
<?php require __DIR__ . '/../vendor/autoload.php'; $configurator = new Nette\Configurator(); // we need to override defaultExtensions because Nette\Configurator registers // butch of extensions we don't need and that clash with the Mango Tester $configurator->defaultExtensions = [ 'php' => Nette\DI\Extensions\PhpExtension::class, 'constants' => Nette\DI\Extensions\ConstantsExtension::class, 'extensions' => Nette\DI\Extensions\ExtensionsExtension::class, 'decorator' => Nette\DI\Extensions\DecoratorExtension::class, 'cache' => [Nette\Bridges\CacheDI\CacheExtension::class, ['%tempDir%']], 'di' => [Nette\DI\Extensions\DIExtension::class, ['%debugMode%']], 'database' => [Nette\Bridges\DatabaseDI\DatabaseExtension::class, ['%debugMode%']], 'tracy' => [Tracy\Bridges\Nette\TracyExtension::class, ['%debugMode%', '%consoleMode%']], 'inject' => Nette\DI\Extensions\InjectExtension::class, ]; $configurator->setDebugMode(true); $logDir = __DIR__ . '/../temp/tests/log'; @mkdir($logDir, 0777, true); $configurator->enableTracy($logDir); $configurator->setTempDirectory(__DIR__ . '/../temp/tests'); $appDir = __DIR__ . '/../app'; $rb = $configurator->createRobotLoader() ->addDirectory($appDir) ->addDirectory(__DIR__) ->register(); $configurator->addParameters( [ 'appDir' => $appDir, 'wwwDir' => __DIR__ . '/../www', ] ); $configurator->addConfig(__DIR__ . '/config/tests.neon'); $configurator->addConfig(__DIR__ . '/../app/config/tests.local.neon'); Tester\Environment::setup(); Tester\Dumper::$maxPathSegments = 32; return [$configurator, 'createContainer'];
tests/config/app.neon
application: errorPresenter: System:Error scanDirs: [] mapping: *: App\*Module\Presenters\*Presenter session: expiration: 14 days save_path: "%tempDir%/sessions" services: nette.mailer: class: Nette\Mail\IMailer factory: Nextras\MailPanel\FileMailer(%tempDir%/mail-panel-mails)
tests/config/tests.neon
extensions: mango.tester: Webnazakazku\MangoTester\Infrastructure\MangoTesterExtension mango.tester.presenterTester: Webnazakazku\MangoTester\PresenterTester\Bridges\Infrastructure\PresenterTesterExtension - Webnazakazku\MangoTester\HttpMocks\Bridges\Infrastructure\HttpExtension parameters: appContainer: parameters: appDir: %appDir% wwwDir: %wwwDir% tempDir: %tempDir% configFiles: - %appDir%/config/config.neon - %appDir%/config/local.neon services: - AppTests\AppConfiguratorFactory
src/AppConfiguratorFactory
<?php declare(strict_types = 1); namespace AppTests; use Nette\Configurator; use Nette\DI\Container as DIContainer; use Nette\DI\Definitions\Statement as DIStatement; use Nette\Neon\Neon; use Nette\Utils\Finder; use Throwable; use Webnazakazku\MangoTester\Infrastructure\Container\IAppConfiguratorFactory; class AppConfiguratorFactory implements IAppConfiguratorFactory { public function create(DIContainer $testContainer): Configurator { $testContainerParameters = $testContainer->getParameters(); $configurator = new Configurator(); $configurator->setDebugMode(true); $configurator->setTempDirectory($testContainerParameters['tempDir']); $appDir = __DIR__ . '/../../app'; $wwwDir = __DIR__ . '/../../temp/tests/www'; $configurator->addParameters( [ 'appDir' => $appDir, 'wwwDir' => $wwwDir, ] ); $configurator->addConfig(__DIR__ . '/../config/app.neon'); $configurator->createRobotLoader() ->addDirectory($appDir) ->register(); $configurator->addConfig($appDir . '/config/config.neon'); $configurator->addConfig($appDir . '/config/tests.local.neon'); $configurator->addConfig( [ 'console' => [ 'url' => null, ], ] ); return $configurator; } }
统计信息
- 总下载量: 4.19k
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 1
- 点击次数: 1
- 依赖项目数: 4
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2022-01-11