Example #1
0
 /**
  * The default `'quit'` filter.
  */
 protected function _quit()
 {
     return Filter::on($this, 'quit', [$this->suite()->passed()], function ($chain, $success) {
     });
 }
Example #2
0
            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();
        });
    });
});
Example #3
0
<?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');
Example #4
0
<?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');
Example #7
0
                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);
        });
    });
});
Example #8
0
    } 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');
Example #9
0
<?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');