covergenius/phpunit-testlistener-vcr

Integrates PHPUnit with PHP-VCR.

v4.2.1 2024-10-02 00:59 UTC

README

CI Tests License Development Version Monthly Installs

Integrates PHPUnit with PHP-VCR using annotations.

PHP-VCR

Use @vcr cassette_name on your tests to turn VCR automatically on and off.

Usage example

use PHPUnit\Framework\TestCase;
use VCR\PHPUnit\TestListener\Attributes\Vcr;

class VCRTest extends TestCase
{
    /**
     * @vcr unittest_annotation_test
     */
    public function testInterceptsWithAnnotations()
    {
        // Content of tests/fixtures/unittest_annotation_test: "This is a annotation test dummy".
        $result = file_get_contents('http://google.com');
        $this->assertEquals('This is a annotation test dummy.', $result, 'Call was not intercepted (using annotations).');
    }

    #[Vcr('unittest_annotation_test')]
    public function testInterceptsWithAttributes(): void
    {
        // Content of tests/fixtures/unittest_annotation_test: "This is a annotation test dummy".
        $result = file_get_contents('http://google.com');
        $this->assertEquals('This is a annotation test dummy.', $result, 'Call was not intercepted (using attributes).');
    }
}

Installation

  1. Install using composer:
composer require --dev covergenius/phpunit-testlistener-vcr

For phpunit version 10+

  1. Add listener to your phpunit.xml:
<extensions>
    <bootstrap class="VCR\PHPUnit\TestListener\VCRTestListener" />
</extensions>

For phpunit version 9 and below

<listeners>
    <listener class="VCR\PHPUnit\TestListener\VCRTestListener" file="vendor/covergenius/phpunit-testlistener-vcr/src/VCRTestListener.php" />
</listeners>

Dependencies

PHPUnit-Testlistener-VCR depends on the following;

Version 4

  • PHP 8.1+
  • PHPUnit >=10

Version 3

  • PHP 7.1+
  • PHPUnit <10

Run tests

In order to run all tests you need to get development dependencies using composer:

composer install
./vendor/bin/phpunit

Changelog

The changelog is manage at PHPUnit testlistener for PHP-VCR releases page.

Copyright

Copyright (c) 2013-2018 Adrian Philipp. Released under the terms of the MIT license. See LICENSE for details. Contributors