Skip to content
This repository has been archived by the owner on Mar 31, 2018. It is now read-only.

edno/codeception-dataprovider

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

20 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Codeception DataProvider

Latest Version Dependency Status Build Status SensioLabs Insight Scrutinizer Code Quality Coverage Status GitHub license

The Codeception extension for supporting dynamic data driven tests (CEST) using @dataprovider annotation.

‼️ This extension is deprecated from Codeception 2.2.7. The @dataprovider annotation is now a core feature of Codeception (see PR#3737)

‼️ If you are running Codeception 2.2.7, then remove this extension by deleting the corresponding line in composer.json and your codeception.yml. No update required for existing tests using @dataprovider

Minimum Requirements

  • Codeception 2.2
  • PHP 5.4

Installation

The extension can be installed using Composer

$ composer require edno/codeception-dataprovider

Be sure to enable the extension in codeception.yml as shown in configuration below.

Configuration

Enabling DataProvider annotation in your tests is done in codeception.yml.

extensions:
    enabled:
        - Codeception\Extension\DataProvider

Usage

Once installed you will be to use the @dataprovider annotation for defining the method to be use for fetching the test data.
Your data source must be a public static function located within your test class. The method should return data compliant with the @example annotation.

Example

<?php

class ExampleDataProviderCest
{
     /**
      * @dataprovider __myDataSource
      */
      public function testWithDataProvider(FunctionalTester $I, \Codeception\Example $example)
      {
            $expected = ["", "foo", "bar", "re"];
            $I->assertInternalType('integer', $example[0]);
            $I->assertEquals($expected[$example[0]], $example[1]);
      }

      public static function __myDataSource()
      {
          return [
              [1, "foo"],
              [2, "bar"],
              [3, "re"]
          ];
      }
}