/** * The default `'quit'` filter. */ protected function _quit() { return Filter::on($this, 'quit', [$this->suite()->passed()], function ($chain, $success) { }); }
Filter::apply($this->specs, 'load', 'spec.load'); Filter::register('spec.reporters', function ($chain) use(&$order) { $order[] = 'reporters'; }); Filter::apply($this->specs, 'reporters', 'spec.reporters'); Filter::register('spec.matchers', function ($chain) use(&$order) { $order[] = 'matchers'; }); Filter::apply($this->specs, 'matchers', 'spec.matchers'); Filter::register('spec.run', function ($chain) use(&$order) { $order[] = 'run'; }); Filter::apply($this->specs, 'run', 'spec.run'); Filter::register('spec.reporting', function ($chain) use(&$order) { $order[] = 'reporting'; }); Filter::apply($this->specs, 'reporting', 'spec.reporting'); Filter::register('spec.stop', function ($chain) use(&$order) { $order[] = 'stop'; }); Filter::apply($this->specs, 'stop', 'spec.stop'); Filter::register('spec.quit', function ($chain) use(&$order) { $order[] = 'quit'; }); Filter::apply($this->specs, 'quit', 'spec.quit'); $this->specs->run(); expect($order)->toBe(['bootstrap', 'interceptor', 'namespaces', 'patchers', 'load', 'reporters', 'matchers', 'run', 'reporting', 'stop', 'quit']); Interceptor::unpatch(); }); }); });
<?php use Kahlan\Filter\Filter; use Kahlan\Reporter\Coverage; use Kahlan\Reporter\Coverage\Driver\Xdebug; use Kahlan\Reporter\Coverage\Exporter\Coveralls; use Kahlan\Reporter\Coverage\Exporter\CodeClimate; $args = $this->args(); $args->argument('coverage', 'default', 3); Filter::register('kahlan.coverage', function ($chain) { if (!extension_loaded('xdebug')) { return; } $reporters = $this->reporters(); $coverage = new Coverage(['verbosity' => $this->args()->get('coverage'), 'driver' => new Xdebug(), 'path' => $this->args()->get('src'), 'exclude' => ['src/init.php', 'src/Cli/Kahlan.php', 'src/Reporter/Coverage/Collector.php', 'src/Reporter/Coverage/Driver/Xdebug.php', 'src/Reporter/Coverage/Driver/HHVM.php', 'src/Reporter/Coverage/Driver/Phpdbg.php', 'src/Reporter/Dot.php', 'src/Reporter/Bar.php', 'src/Reporter/Verbose.php', 'src/Reporter/Terminal.php', 'src/Reporter/Reporter.php', 'src/Reporter/Coverage.php'], 'colors' => !$this->args()->get('no-colors')]); $reporters->add('coverage', $coverage); }); Filter::apply($this, 'coverage', 'kahlan.coverage'); Filter::register('kahlan.coverage-exporter', function ($chain) { $reporter = $this->reporters()->get('coverage'); if (!$reporter) { return; } Coveralls::write(['collector' => $reporter, 'file' => 'coveralls.json', 'service_name' => 'travis-ci', 'service_job_id' => getenv('TRAVIS_JOB_ID') ?: null]); CodeClimate::write(['collector' => $reporter, 'file' => 'codeclimate.json', 'branch' => getenv('TRAVIS_BRANCH') ?: null, 'repo_token' => 'a4b5637db5629f60a5d3fc1a070b2339479ff8989c6491dfc6a19cada5e4ffaa']); return $chain->next(); }); Filter::apply($this, 'reporting', 'kahlan.coverage-exporter');
<?php use Kahlan\Filter\Filter; /** * Completly disable the Kahlan autoloader interceptor configuration. */ class_exists('Lead\\Jit\\Parser'); class_exists('Lead\\Jit\\Node\\BlockDef'); class_exists('Lead\\Jit\\Node\\FunctionDef'); class_exists('Lead\\Jit\\TokenStream'); Filter::register('jit.interceptor', function ($chain) { }); Filter::apply($this, 'interceptor', 'jit.interceptor');
<?php use Kahlan\Filter\Filter; use Kahlan\Reporter\Coverage; $args = $this->args(); $args->argument('spec', 'default', 'tests/kahlan'); $this->args()->set('exclude', ['Symfony', 'Sensio', 'Doctrine', 'JMS']); /** Initializing a custom coverage reporter */ Filter::register('app.coverage', function ($chain) { $reporters = $this->reporters(); if ($this->args()->exists('coverage')) { // Limit the Coverage analysis to only a couple of directories only $coverage = new Coverage(['verbosity' => $this->args()->get('coverage'), 'driver' => new Coverage\Driver\Xdebug(), 'path' => [__DIR__ . '/src'], 'exclude' => [__DIR__ . '/src/*/Resources', __DIR__ . '/src/*/DataFixtures']]); $reporters->add('coverage', $coverage); } return $reporters; }); Filter::apply($this, 'coverage', 'app.coverage');
<?php use Kahlan\Filter\Filter; use RRegeer\Reporters\TeamcityReporter; Filter::register('kahlan.teamcity', function () { $reporters = $this->reporters(); $reporters->add('teamcity', new TeamcityReporter(['start' => $this->_start])); }); Filter::apply($this, 'console', 'kahlan.teamcity');
return $chain->next($message); }); expect(Filter::registered('spec.newclosure'))->toBe(true); }); it("registers a closure with no name", function () { $name = Filter::register(function ($chain, $message) { $message = "My {$message}"; return $chain->next($message); }); expect(Filter::registered($name))->toBe(true); }); }); describe("::unregister()", function () { it("unregisters a closure", function () { Filter::register('spec.newclosure', function ($chain, $message) { $message = "My {$message}"; return $chain->next($message); }); Filter::unregister('spec.newclosure'); expect(Filter::registered('spec.newclosure'))->toBe(false); }); }); describe("::resets()", function () { it("clears all the filters", function () { Filter::reset(); expect(Filter::registered('spec.my_prefix'))->toBe(false); expect(Filter::registered('spec.be_prefix'))->toBe(false); expect(Filter::registered('spec.no_chain'))->toBe(false); }); }); });
} catch (TimeoutException $e) { echo "Unable to run the WebDriver binary, abording.\n"; $process->close(); exit(-1); } return $chain->next(); }); Filter::register('register.globals', function ($chain) { $root = $this->suite(); $root->mink = $mink = box('spec')->get('mink'); $root->afterEach(function () use($mink) { $mink->resetSessions(); }); return $chain->next(); }); Filter::register('register.matchers', function ($chain) { Matcher::register('toContain', 'Testing\\Spec\\Matcher\\ToContain', 'Behat\\Mink\\Element\\Element'); return $chain->next(); }); Filter::register('cleanup', function ($chain) { $box = box('spec'); $box->get('mink')->stopSessions(); $box->get('manager')->close(); return $chain->next(); }); Filter::apply($this, 'interceptor', 'exclude.namespaces'); Filter::apply($this, 'run', 'run.webdriver'); Filter::apply($this, 'run', 'register.globals'); Filter::apply($this, 'run', 'register.matchers'); Filter::apply($this, 'stop', 'cleanup');
<?php use kahlan\filter\Filter; use VCR\VCR; VCR::configure()->setCassettePath(__DIR__ . '/spec/fixtures'); VCR::turnOn(); Filter::register('exclude.namespaces', function ($chain) { }); Filter::apply($this, 'interceptor', 'exclude.namespaces');
<?php use kahlan\filter\Filter; use kahlan\reporter\Coverage; use kahlan\reporter\coverage\driver\Xdebug; use kahlan\reporter\coverage\exporter\Coveralls; $args = $this->args(); $args->argument('coverage', 'default', 3); Filter::register('siphon.coverage', function ($chain) { if (!extension_loaded('xdebug')) { return; } $reporters = $this->reporters(); $coverage = new Coverage(['verbosity' => $this->args()->get('coverage'), 'driver' => new Xdebug(), 'path' => $this->args()->get('src'), 'colors' => !$this->args()->get('no-colors')]); $reporters->add('coverage', $coverage); }); Filter::apply($this, 'coverage', 'siphon.coverage'); Filter::register('siphon.coverage-exporter', function ($chain) { $reporter = $this->reporters()->get('coverage'); if (!$reporter) { return; } Coveralls::write(['collector' => $reporter, 'file' => 'coveralls.json', 'service_name' => 'travis-ci', 'service_job_id' => getenv('TRAVIS_JOB_ID') ?: null]); return $chain->next(); }); Filter::apply($this, 'reporting', 'siphon.coverage-exporter');