1

Codeception: Configuration file(s) placed in tests/_envs are not working. I am trying to run my acceptance tests in multiple environments (ex. dev, qa, staging, prod). So I have setup dev.yml, qa.yml, staging.yml and prod.yml files under tests/_env directory. Each of those separate environment I am overriding the WebDriver - url.

file - dev.yml

modules:
    config:
        WebDriver:
            url: 'dev.mysite.local'

Then when I try to run the acceptance test suite using one of the environment, ex

./vendor/bin/codecept run acceptance --env dev 

It doesn’t pull in the dev configuration, but instead uses the default configuration from acceptance.suite.yml file. What am I doing wrong?

Faiyaz Haider
  • 98
  • 1
  • 11

1 Answers1

1

There is a bug in the codeception/configuration.php file where a wrong regular expression has been used, which prevents .yml file from being loaded. However, dist.yml files loads just fine. They have already pushed a change for this bug.

In case you don't have this changeset, you can manually change it on your codeception/configuration.php file or simply use the dist.yml extension.

Wrong regex:

$envFiles = Finder::create()
        ->files()
        ->name('*{.dist}.yml')
        ->in($path)
        ->depth('< 1');

Correction:

    $envFiles = Finder::create()
        ->files()
        ->name('*.yml')
        ->in($path)
        ->depth('< 1');

Thanks to sjableka for the answer posted on the Codeception repo.

random
  • 9,774
  • 10
  • 66
  • 83
Faiyaz Haider
  • 98
  • 1
  • 11