webnazakazku/mango-tester-infrastructure 问题修复 & 功能扩展

解决BUG、新增功能、兼容多环境部署,快速响应你的开发需求

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

webnazakazku/mango-tester-infrastructure

最新稳定版本:v0.7

Composer 安装命令:

composer require webnazakazku/mango-tester-infrastructure

包简介

README 文档

README

Build Status

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

GitHub 信息

  • Stars: 1
  • Watchers: 1
  • Forks: 6
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2022-01-11