pastuhov/yii2-logstock

The testing extension for the Yii framework

Installs: 1 014

Dependents: 1

Suggesters: 0

Security: 0

Stars: 4

Watchers: 2

Forks: 5

Open Issues: 3

Type:yii2-extension

v5.0 2019-07-09 05:35 UTC

This package is not auto-updated.

Last update: 2020-06-26 19:50:10 UTC


README

This extension provides recording and asserting application trace (snapshot). Based on yii\debug module.

Cover

Support

  1. Unit
  2. Functional (without web server) - does not support
  3. Acceptance (throughout web server)

Latest Stable Version Build Status Total Downloads

Installation

The preferred way to install this extension is through composer.

Either run

php composer.phar require --prefer-dist pastuhov/yii2-logstock

or add

"require-dev": {
    "pastuhov/yii2-logstock": "~1.0.0"
    ...

to the require section of your composer.json file.

Usage

Once the extension is installed, simply modify your application configuration as follows:

...
if (YII_ENV_TEST) {
    // configuration adjustments for 'test' environment
    $config['bootstrap'][] = 'logstock';
    $config['modules']['logstock'] = [
        'class' => \pastuhov\logstock\Module::class,
    ];

}
...

Add pastuhov\logstock\UnitHelper to suit config

modules:
    enabled:
        - pastuhov\logstock\UnitHelper

Use assertLog() method in tests

...
    public function testExampleUnitUsage()
    {
        $this->tester->assertLog(function (){
            Yii::info('Test info message');
            Yii::$app->getDb()->createCommand('SELECT * FROM page')->execute();
        }, Yii::$app);
    }
...

First time snapshot artifact will be recorded

1) Test example unit usage (unit\ExampleUnitTest::testExampleUnitUsage)
Fixture has aggregated. Please restart test!

Recorded snapshot:

Entry: console

Test info message

SELECT * FROM page

On subsequent test runs Logstock will simply compare the rendered output with the previous snapshot. If they match, the test will pass. If they don't match, either the test runner found a bug in your code that should be fixed, or the implementation has changed and the snapshot needs to be updated.

For more info see tests.

Testing

./vendor/bin/codecept run unit,acceptance

If web server needed:

./tests/bin/yii serve&

Security

If you discover any security related issues, please email pastukhov_k@sima-land.ru instead of using the issue tracker.