8 – PHPUnit fails when logging in user


I’ve got a custom module and have the auto generated LoadTest but it is not working. This is a functional test.

  protected function setUp() {
    parent::setUp();
    $this->user = $this->drupalCreateUser(('administer site configuration'));
    $this->drupalLogin($this->user); // Breaks here
  }

  public function testLoad() {
    $this->drupalGet(Url::fromRoute('<front>'));
    $this->assertSession()->statusCodeEquals(200);
  }

Running this test returns :

1) DrupalTestsweekly_digestFunctionalLoadTest::testLoad
User <em class="placeholder">belwfS3e</em> successfully logged in.
Failed asserting that false is true.

/app/web/core/tests/Drupal/TestTools/PhpUnitCompatibility/PhpUnit7/TestCompatibilityTrait.php:18
/app/web/core/tests/Drupal/Tests/UiHelperTrait.php:254
/app/web/modules/custom/weekly_digest/tests/src/Functional/LoadTest.php:35

When I comment out the drupalLogin call the test succeeds.

The fail is on this line

$this->assertTrue($this->drupalUserIsLoggedIn($account), new FormattableMarkup('User %name successfully logged in.', ('%name' => $account->getAccountName())));

And if you look at the error from above it’s from the TestCompatibilityTrait which had some pretty wacky deprecation errors.

Here is my phpunit env

    <!-- Set error reporting to E_ALL. -->
    <ini name="error_reporting" value="32767"/>
    <!-- Do not limit the amount of memory tests take to run. -->
    <ini name="memory_limit" value="-1"/>

    <env name="SYMFONY_DEPRECATIONS_HELPER" value="disabled"/>

    <env name="SIMPLETEST_BASE_URL" value="http://changelog.lndo.site/"/>
    <env name="SIMPLETEST_DB" value="mysql://drupal8:drupal8@database/drupal8"/>

    <env name="BROWSERTEST_OUTPUT_DIRECTORY" value="web/sites/simpletest/browser_output"/>
    <env name="BROWSERTEST_OUTPUT_BASE_URL" value=""/>

    <!-- Example for changing the driver class for mink tests MINK_DRIVER_CLASS value: 'DrupalFunctionalJavascriptTestsDrupalSelenium2Driver' -->
    <env name="MINK_DRIVER_CLASS" value=''/>
    <!-- Example for changing the driver args to mink tests MINK_DRIVER_ARGS value: '("http://127.0.0.1:8510")' -->
    <env name="MINK_DRIVER_ARGS" value=''/>
    <!-- Example for changing the driver args to phantomjs tests MINK_DRIVER_ARGS_PHANTOMJS value: '("http://127.0.0.1:8510")' -->
    <env name="MINK_DRIVER_ARGS_PHANTOMJS" value=''/>
    <!-- Example for changing the driver args to webdriver tests MINK_DRIVER_ARGS_WEBDRIVER value: '("chrome", { "chromeOptions": { "w3c": false } }, "http://localhost:4444/wd/hub")' For using the Firefox browser, replace "chrome" with "firefox" -->
    <env name="MINK_DRIVER_ARGS_WEBDRIVER" value=''/>

This is using lando.
Why would I be getting these failures? It accesses the site just fine, it seems to be checking if the user is logged in that’s causing the issue but I can’t find out why.