Create minimal passing scenario
This commit is contained in:
@@ -1,164 +0,0 @@
|
|||||||
Feature: Not crashing Behat
|
|
||||||
In order to use this extension
|
|
||||||
As a Behat User
|
|
||||||
I want to have Behat up and running after enabling this extension
|
|
||||||
|
|
||||||
Scenario: Successful boot the Symfony kernel with autoconfiguration
|
|
||||||
Given a Behat configuration containing:
|
|
||||||
"""
|
|
||||||
default:
|
|
||||||
extensions:
|
|
||||||
FriendsOfBehat\SymfonyExtension: ~
|
|
||||||
"""
|
|
||||||
And a file "app/autoload.php" containing:
|
|
||||||
"""
|
|
||||||
<?php
|
|
||||||
|
|
||||||
"""
|
|
||||||
And a file "app/AppKernel.php" containing:
|
|
||||||
"""
|
|
||||||
<?php
|
|
||||||
|
|
||||||
use Symfony\Component\HttpKernel\Kernel;
|
|
||||||
use Symfony\Component\Config\Loader\LoaderInterface;
|
|
||||||
|
|
||||||
class AppKernel extends Kernel
|
|
||||||
{
|
|
||||||
public function registerBundles() { return []; }
|
|
||||||
public function registerContainerConfiguration(LoaderInterface $loader) {}
|
|
||||||
}
|
|
||||||
"""
|
|
||||||
And a feature file with passing scenario
|
|
||||||
When I run Behat
|
|
||||||
Then it should pass
|
|
||||||
|
|
||||||
Scenario: Successful boot the Symfony kernel with explicit configuration
|
|
||||||
Given a Behat configuration containing:
|
|
||||||
"""
|
|
||||||
default:
|
|
||||||
extensions:
|
|
||||||
FriendsOfBehat\SymfonyExtension:
|
|
||||||
kernel:
|
|
||||||
path: app/MyKernel.php
|
|
||||||
class: MyKernel
|
|
||||||
env: test
|
|
||||||
debug: true
|
|
||||||
"""
|
|
||||||
And a file "app/autoload.php" containing:
|
|
||||||
"""
|
|
||||||
<?php
|
|
||||||
|
|
||||||
"""
|
|
||||||
And a file "app/MyKernel.php" containing:
|
|
||||||
"""
|
|
||||||
<?php
|
|
||||||
|
|
||||||
use Symfony\Component\HttpKernel\Kernel;
|
|
||||||
use Symfony\Component\Config\Loader\LoaderInterface;
|
|
||||||
|
|
||||||
class MyKernel extends Kernel
|
|
||||||
{
|
|
||||||
public function registerBundles() { return []; }
|
|
||||||
public function registerContainerConfiguration(LoaderInterface $loader) {}
|
|
||||||
}
|
|
||||||
"""
|
|
||||||
And a feature file with passing scenario
|
|
||||||
When I run Behat
|
|
||||||
Then it should pass
|
|
||||||
|
|
||||||
|
|
||||||
Scenario: Successful boot the Symfony 4 kernel with autoconfiguration
|
|
||||||
Given a Behat configuration containing:
|
|
||||||
"""
|
|
||||||
default:
|
|
||||||
extensions:
|
|
||||||
FriendsOfBehat\SymfonyExtension: ~
|
|
||||||
"""
|
|
||||||
And a file ".env" containing:
|
|
||||||
"""
|
|
||||||
APP_ENV=dev
|
|
||||||
"""
|
|
||||||
And a file "src/Kernel.php" containing:
|
|
||||||
"""
|
|
||||||
<?php
|
|
||||||
|
|
||||||
namespace App;
|
|
||||||
|
|
||||||
use Symfony\Component\HttpKernel\Kernel as BaseKernel;
|
|
||||||
use Symfony\Component\Config\Loader\LoaderInterface;
|
|
||||||
|
|
||||||
class Kernel extends BaseKernel
|
|
||||||
{
|
|
||||||
public function registerBundles() { return []; }
|
|
||||||
public function registerContainerConfiguration(LoaderInterface $loader) {}
|
|
||||||
}
|
|
||||||
"""
|
|
||||||
And a feature file with passing scenario
|
|
||||||
When I run Behat
|
|
||||||
Then it should pass
|
|
||||||
|
|
||||||
Scenario: Successful boot the Symfony 4 kernel with explicit configuration
|
|
||||||
Given a Behat configuration containing:
|
|
||||||
"""
|
|
||||||
default:
|
|
||||||
extensions:
|
|
||||||
FriendsOfBehat\SymfonyExtension:
|
|
||||||
env_file: ../config/.env_in_memory
|
|
||||||
kernel:
|
|
||||||
path: src/MyKernel.php
|
|
||||||
class: MyKernel
|
|
||||||
"""
|
|
||||||
And a file "../config/.env_in_memory" containing:
|
|
||||||
"""
|
|
||||||
APP_ENV=dev
|
|
||||||
"""
|
|
||||||
And a file "src/MyKernel.php" containing:
|
|
||||||
"""
|
|
||||||
<?php
|
|
||||||
|
|
||||||
use Symfony\Component\HttpKernel\Kernel;
|
|
||||||
use Symfony\Component\Config\Loader\LoaderInterface;
|
|
||||||
|
|
||||||
class MyKernel extends Kernel
|
|
||||||
{
|
|
||||||
public function registerBundles() { return []; }
|
|
||||||
public function registerContainerConfiguration(LoaderInterface $loader) {}
|
|
||||||
}
|
|
||||||
"""
|
|
||||||
And a feature file with passing scenario
|
|
||||||
When I run Behat
|
|
||||||
Then it should pass
|
|
||||||
|
|
||||||
Scenario: This extension used dist file by default
|
|
||||||
Given a Behat configuration containing:
|
|
||||||
"""
|
|
||||||
default:
|
|
||||||
extensions:
|
|
||||||
FriendsOfBehat\SymfonyExtension:
|
|
||||||
env_file: .env_in_memory
|
|
||||||
kernel:
|
|
||||||
path: src/MyKernel.php
|
|
||||||
class: MyKernel
|
|
||||||
env: dev
|
|
||||||
debug: true
|
|
||||||
"""
|
|
||||||
And a file ".env_in_memory.dist" containing:
|
|
||||||
"""
|
|
||||||
APP_ENV=dev
|
|
||||||
"""
|
|
||||||
And a file "src/MyKernel.php" containing:
|
|
||||||
"""
|
|
||||||
<?php
|
|
||||||
|
|
||||||
use Symfony\Component\HttpKernel\Kernel;
|
|
||||||
use Symfony\Component\Config\Loader\LoaderInterface;
|
|
||||||
|
|
||||||
class MyKernel extends Kernel
|
|
||||||
{
|
|
||||||
public function registerBundles() { return []; }
|
|
||||||
public function registerContainerConfiguration(LoaderInterface $loader) {}
|
|
||||||
}
|
|
||||||
"""
|
|
||||||
And a feature file with passing scenario
|
|
||||||
When I run Behat
|
|
||||||
Then it should pass
|
|
||||||
51
features/running_bare_behat_scenarios.feature
Normal file
51
features/running_bare_behat_scenarios.feature
Normal file
@@ -0,0 +1,51 @@
|
|||||||
|
Feature: Running bare Behat scenarios
|
||||||
|
|
||||||
|
Scenario: Running Behat with SymfonyExtension
|
||||||
|
Given a Behat configuration containing:
|
||||||
|
"""
|
||||||
|
default:
|
||||||
|
extensions:
|
||||||
|
FriendsOfBehat\SymfonyExtension:
|
||||||
|
kernel:
|
||||||
|
path: app/AppKernel.php
|
||||||
|
class: AppKernel
|
||||||
|
|
||||||
|
Behat\MinkExtension:
|
||||||
|
base_url: "http://localhost:8080/"
|
||||||
|
default_session: symfony
|
||||||
|
sessions:
|
||||||
|
symfony:
|
||||||
|
symfony: ~
|
||||||
|
"""
|
||||||
|
And a file "app/AppKernel.php" containing:
|
||||||
|
"""
|
||||||
|
<?php
|
||||||
|
|
||||||
|
use Symfony\Component\HttpKernel\Kernel;
|
||||||
|
use Symfony\Component\DependencyInjection\ContainerBuilder;
|
||||||
|
use Symfony\Component\Config\Loader\LoaderInterface;
|
||||||
|
|
||||||
|
class AppKernel extends Kernel
|
||||||
|
{
|
||||||
|
public function registerBundles()
|
||||||
|
{
|
||||||
|
return [
|
||||||
|
new \Symfony\Bundle\FrameworkBundle\FrameworkBundle(),
|
||||||
|
new \FriendsOfBehat\SymfonyExtension\Bundle\FriendsOfBehatSymfonyExtensionBundle(),
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
public function registerContainerConfiguration(LoaderInterface $loader)
|
||||||
|
{
|
||||||
|
$loader->load(function (ContainerBuilder $container): void {
|
||||||
|
$container->loadFromExtension('framework', [
|
||||||
|
'test' => $this->getEnvironment() === 'test',
|
||||||
|
'secret' => 'Pigeon',
|
||||||
|
]);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
"""
|
||||||
|
And a feature file with passing scenario
|
||||||
|
When I run Behat
|
||||||
|
Then it should pass
|
||||||
@@ -50,12 +50,13 @@ final class SymfonyExtension implements Extension
|
|||||||
{
|
{
|
||||||
$builder
|
$builder
|
||||||
->children()
|
->children()
|
||||||
->scalarNode('env_file')->end()
|
->scalarNode('env_file')->defaultNull()->end()
|
||||||
->arrayNode('kernel')
|
->arrayNode('kernel')
|
||||||
->addDefaultsIfNotSet()
|
->addDefaultsIfNotSet()
|
||||||
->children()
|
->children()
|
||||||
->scalarNode('class')->defaultValue('App\\Kernel')->end()
|
->scalarNode('path')->defaultNull()->end()
|
||||||
->scalarNode('env')->defaultValue('test')->end()
|
->scalarNode('class')->isRequired()->end()
|
||||||
|
->scalarNode('env')->defaultValue('test')->cannotBeEmpty()->end()
|
||||||
->booleanNode('debug')->defaultTrue()->end()
|
->booleanNode('debug')->defaultTrue()->end()
|
||||||
->end()
|
->end()
|
||||||
->end()
|
->end()
|
||||||
@@ -115,6 +116,10 @@ final class SymfonyExtension implements Extension
|
|||||||
$definition->addMethodCall('boot');
|
$definition->addMethodCall('boot');
|
||||||
$definition->setPublic(true);
|
$definition->setPublic(true);
|
||||||
|
|
||||||
|
if (null !== $config['path']) {
|
||||||
|
$definition->setFile($config['path']);
|
||||||
|
}
|
||||||
|
|
||||||
$container->setDefinition(self::KERNEL_ID, $definition);
|
$container->setDefinition(self::KERNEL_ID, $definition);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user