phpdotenv icon indicating copy to clipboard operation
phpdotenv copied to clipboard

Inconsistent result when calling `$this->dotenv->load()` multiple times from PHPUnit

Open bilogic opened this issue 1 year ago • 1 comments
trafficstars

https://gist.github.com/bilogic/4114836067651905888abd542becee55

I have a set of flaky tests in the gist above. What I can't understand is:

  1. If the tests are ran individually, they all pass
  2. If PHPUnit is used to run them all, test_Can_detect_missing_mandatory_environment_keys fails and it is due to $this->dotenv->load(); returning an empty array here https://gist.github.com/bilogic/4114836067651905888abd542becee55#file-envchecker-php-L61
  3. If I re-order test_Can_detect_missing_mandatory_environment_keys as the first test, it passes and now test_Can_parse_environment_file fails due to the same issue of an empty array

Any idea what I'm missing here?

bilogic avatar Apr 26 '24 03:04 bilogic

Use createMutable while I would need to dig through the code to fully comprehend the inner workings, it seems that immutability in this instance returns configuration onces but not on "future" usage of "load()".

I'm not sure whether this is by design, hypothetically, you should be able to have multiple immutable configuration at whatever point you want that shouldn't change outside of a particular bound/context.

mattsmithies avatar Jun 24 '24 11:06 mattsmithies