Problem/Motivation

The BrowserTestBase::initMink() assumes we want to use the Goutte driver for our tests.

The Goutte Driver is fine for a default but we should be able to set the diver to be used.

Further more, individual tests should be able to set their own default driver.

BrowserTestBase::registerSessions() suggests it should be use to override the default driver for individual tests but there wouldn't be a way to override the default for an individual test if the default driver was set in this way.

Proposed resolution

Add $default_mink_driver to BrowserTestBase. Add support for overriding the default mink driver.

Remaining tasks

User interface changes

API changes

Data model changes

CommentFileSizeAuthor
#53 interdiff-2573165-50-53.txt1001 bytestunic
#53 step_1_5_make_the-2573165-53.patch3.06 KBtunic
#50 interdiff-2573165-45-50.txt3.1 KBtunic
#50 step_1_5_make_the-2573165-50.patch3.06 KBtunic
#45 interdiff-2573165-42-45.txt709 bytestunic
#45 step_1_5_make_the-2573165-45.patch2.34 KBtunic
#44 step_1_5_make_the-2573165-43.patch2.44 KBelachlan
#42 step_1_5_make_the-2573165-42.patch2.48 KBtunic
#39 step_1_5_make_the-2573165-39.patch2.42 KBtunic
#31 step_1_5_make_the-2573165-31.patch2.34 KBhussainweb
PASSED: [[SimpleTest]]: [PHP 5.5 MySQL] 113,996 pass(es). View
#31 interdiff-29-31.txt964 byteshussainweb
#29 interdiff-2573165-23-29.txt1.75 KBtunic
#29 step_1_5_make_the-2573165-29.patch2.17 KBtunic
PASSED: [[SimpleTest]]: [PHP 5.5 MySQL] 113,967 pass(es). View
#5 drupal-simpletest-make-default-mink-driver-swappable-2573165-1.patch1.25 KBtunic
FAILED: [[SimpleTest]]: [PHP 5.5 MySQL] 113,903 pass(es), 2 fail(s), and 0 exception(s). View
#6 drupal-simpletest-make-default-mink-driver-swappable-2573165-2.patch1.93 KBtunic
FAILED: [[SimpleTest]]: [PHP 5.5 MySQL] 113,902 pass(es), 2 fail(s), and 0 exception(s). View
#12 step_1_5_make_the-2573165-12.patch1.02 KBtunic
FAILED: [[SimpleTest]]: [PHP 5.5 MySQL] 113,910 pass(es), 2 fail(s), and 0 exception(s). View
#19 interdiff-2573165-12-17.txt1.38 KBtunic
#19 step_1_5_make_the-2573165-17.patch1.26 KBtunic
FAILED: [[SimpleTest]]: [PHP 5.5 MySQL] 113,933 pass(es), 2 fail(s), and 0 exception(s). View
#23 step_1_5_make_the-2573165-23.patch1.38 KBtunic
FAILED: [[SimpleTest]]: [PHP 5.5 MySQL] Failed to run tests: PHP Fatal error encountered during run_tests.sh. See review log for details.. View
#23 interdiff-2573165-19-23.txt1.08 KBtunic
Members fund testing for the Drupal project. Drupal Association Learn more

Comments

dawehner created an issue. See original summary.

dawehner’s picture

This is not really a proper start I would say, but its extracted from the other issue #2469713: Step 2: Create a JavaScriptTestBase using PhantomJs Driver/Binary

larowlan’s picture

Fairly sure grom had it working this way early on in the original issue, might be with pinging him on irc

Jaesin’s picture

tunic’s picture

Status: Active » Needs review
FileSize
1.25 KB
FAILED: [[SimpleTest]]: [PHP 5.5 MySQL] 113,903 pass(es), 2 fail(s), and 0 exception(s). View

Added to simple patches, first just adds $defaultMinkDriverClassName property and a second one that adds also a setter that I'm not sure if it's needed ($defaultMinkDriverClassName can be overriden in classes that extends BrowserTestBase).

Also changed default Mink session name from 'goutte' to 'default' as it may not be a Goutte session.

tunic’s picture

FileSize
1.93 KB
FAILED: [[SimpleTest]]: [PHP 5.5 MySQL] 113,902 pass(es), 2 fail(s), and 0 exception(s). View

Second patch.

Status: Needs review » Needs work
cilefen’s picture

@tunic It is a good idea to provide interdiffs.

  1. +++ b/core/modules/simpletest/src/BrowserTestBase.php
    @@ -12,6 +12,7 @@
     use Behat\Mink\Session;
    +//use Behat\Mink\Driver\DriverInterface;
     use Drupal\Component\Utility\SafeMarkup;
    

    Remove this commented code change.

  2. +++ b/core/modules/simpletest/src/BrowserTestBase.php
    @@ -349,6 +357,16 @@ protected function tearDown() {
    +  public function setDefaultMinkDriverClassName($minkDriverClassName) {
    +    $this->defaultMinkDriverClassName = $minkDriverClassName;
    +  }
    

    Who is going to call this?

  3. +++ b/core/modules/simpletest/src/BrowserTestBase.php
    @@ -349,6 +357,16 @@ protected function tearDown() {
    diff --git a/sites/default/default.services.yml b/sites/default/default.services.yml
    
    diff --git a/sites/default/default.services.yml b/sites/default/default.services.yml
    old mode 100644
    new mode 100755
    diff --git a/sites/default/default.settings.php b/sites/default/default.settings.php
    
    diff --git a/sites/default/default.settings.php b/sites/default/default.settings.php
    old mode 100644
    new mode 100755
    

    This permission change should not be part of the patch.

tunic’s picture

Status: Needs work » Needs review
FileSize
1.02 KB
FAILED: [[SimpleTest]]: [PHP 5.5 MySQL] 113,910 pass(es), 2 fail(s), and 0 exception(s). View

Ouch! I usually have permissions deactivated and I don't care, I've to check them next times.

As I understand test are classes that can extend form BrowserTestBase, so $defaultMinkDriverClassName can be overriden on each subclass. However I added a a setter because I wasn't sure if it was needed.

Added a fixed patch without the setter, I've hidden buggy patches.

Thanks for reviewing!

tunic’s picture

[Double post due the buggy DrupalCon Barcelona WiFi :(]

Status: Needs review » Needs work

The last submitted patch, 12: step_1_5_make_the-2573165-12.patch, failed testing.

The last submitted patch, 12: step_1_5_make_the-2573165-12.patch, failed testing.

cilefen’s picture

+++ b/core/modules/simpletest/src/BrowserTestBase.php
@@ -181,6 +181,13 @@
   /**
+   * Default mink driver class name.
+   *
+   * @var string.
+   */
+  protected $defaultMinkDriverClassName = 'GoutteDriver';

This is a simple solution if it works. Although, we may as well call it minkDriverClassName, which has a default, which can then be overridden.

Now, we have the issue of setting some kind of machine name for the driver in ->registerSession. On way around that would be to add a protected member which is an array of supported mink driver class names, keyed by their machine names. That way, as a test author, I could set something like $minkDriver = 'selenium2';.

Jaesin’s picture

+++ b/core/modules/simpletest/src/BrowserTestBase.php
@@ -181,6 +181,13 @@
+  protected $defaultMinkDriverClassName = 'GoutteDriver';

I think it would be OK to call it $minkDriverClass or $minkDriverFQCN but this value should be a fully qualified class name ("\Behat\Mink\Driver\GoutteDriver") so people don't think there is some kind of magic mink driver class resolution gong on.

For the session name, "default" is semantically correct but maybe add new var and use $this->sessionName to make it super easy for tests to override. There are more reasons one might want to override the session besides wanting to choose a different driver. A valid session name could be 'admin' or 'user_three'.

Lastly, we should also check getenv('MINK_DRIVER_FQCN') and getenv('MINK_DRIVER_ARGS') for an overridden mink driver. This will let us use export MINK_DRIVER_FQCN="\Behat\Mink\Driver\Selenium2Driver" and run all tests using a different driver (for comparison). Some drivers might require arguments, So we should have a minkDriverArgs var and instantiate something like:

<?php
    $mink_driver_env_args = ($arg_json = getenv('MINK_DRIVER_ARGS')) ? json_decode($arg_json) : $this->minkDriverArgs;
    $mink_driver_class = class_exists(getenv('MINK_DRIVER_FQCN')) ? getenv('MINK_DRIVER_FQCN') : $this->minkDriverFQCN;
    $driver = is_array($mink_driver_env_args) && ($reflector = new ReflectionClass($mink_driver_class)) ? $reflector->newInstanceArgs($mink_driver_env_args) : new $mink_driver_class();
?>
Jaesin’s picture

Example of setting driver args via the command line: export MINK_DRIVER_ARGS='["phantomJS"]'

tunic’s picture

Status: Needs work » Needs review
FileSize
1.38 KB
1.26 KB
FAILED: [[SimpleTest]]: [PHP 5.5 MySQL] 113,933 pass(es), 2 fail(s), and 0 exception(s). View

Added protected array as suggested and changed sessions name with machine name of selected session.

What I don't understand is why testbot is failing. In my local I have a new branch with my commits; simpletest is failing. Branch 8.0.x pass all tests so I've undone all my changes and still failing in my local branch.

Jaesin’s picture

@tunic see SimpleTestBrowserTest.php 148 Drupal\simpletest\Tests\SimpleTestBrowserTest->testTestingThroughUI()

Status: Needs review » Needs work

The last submitted patch, 19: step_1_5_make_the-2573165-17.patch, failed testing.

The last submitted patch, 19: step_1_5_make_the-2573165-17.patch, failed testing.

tunic’s picture

Status: Needs work » Needs review
FileSize
1.08 KB
1.38 KB
FAILED: [[SimpleTest]]: [PHP 5.5 MySQL] Failed to run tests: PHP Fatal error encountered during run_tests.sh. See review log for details.. View

#20 Jaesin I've checked, is a test that runs the Simpletest tests using the UI and looks for the "0 fails, 0 exceptions". The class for that test is SimpleTestBrowserTest that extends WebTestBase so BrowserTestBase, the class I've modified, is not involved.

Added your suggestions in #17 (I didn't it see before) except the getenv part, I expect to add it tomorrow during DrupalCon sprints.

The last submitted patch, 23: step_1_5_make_the-2573165-23.patch, failed testing.

The last submitted patch, 23: step_1_5_make_the-2573165-23.patch, failed testing.

grom358’s picture

My thoughts on this was to maybe use the plugin system and the driver parameters could be specified in YML config files.

I don't think we should need to use subclass in order to plugin another Mink session.

Then BrowserTestBase could have a method for switching the default session. $this->setDefaultSession('phantomjs') . Then the following methods like drupalGet will be using this session. So on an individual test at start of test you can select which Mink driver you will be using.

tunic’s picture

grom358, you say create a plugin manager that manages Mink drivers, so in the first time available dirvers are discovered (instead of having them as a hardcoded protected array property) and addi a setter for the driver to use?

grom358’s picture

@tunic yeah something along those lines. I don't know the plugin stuff in d8 too well but that was my thoughts. You will notice that mink has a default session

$this->mink->setDefaultSessionName('goutte');

So I was thinking there a little wrapper method around this, that lets you set to one of the registered Mink drivers that were discovered.

The main thing is using a driver may require settings and so I think that is something that should be in config files.

tunic’s picture

FileSize
2.17 KB
PASSED: [[SimpleTest]]: [PHP 5.5 MySQL] 113,967 pass(es). View
1.75 KB

New patch, this should pass tests.

Renamed BrowserTestBase::sessionName toBrowserTestBase:: minkSessionName (conflicts with SessionTestTrait).

Added a setter for BrowserTestBase::minkDriver, throws InvalidArgumentException if given driver machine name is not in the BrowserTestBase::minkAvailableDrivers array.

I've not added a setter for the session name as is just a protected string that subclass can set before calling setUp(). There's no logic involved when chaning the name, just set the new value.

tunic’s picture

About the plugin approach: I'll be happy to add a patch with a plugin manager but I'd like to be sure this is the accepted approach as is not a simple task (this wuold be my first code on D8 plugins) and don't want to work in vain.

I short, a plugin manager myst be added along a plugin that provides the Goutte driver, right? The two of them will live in the Simpletest directory.

hussainweb’s picture

FileSize
964 bytes
2.34 KB
PASSED: [[SimpleTest]]: [PHP 5.5 MySQL] 113,996 pass(es). View

I'm just fixing nitpicks here. One of them is not really a problem but I might as well.

Jaesin’s picture

  1. +++ b/core/modules/simpletest/src/BrowserTestBase.php
    @@ -181,6 +180,31 @@
    +  protected $minkDriver = 'goutte';
    ...
    +  protected $minkAvailableDrivers = [
    +    'goutte' => '\Behat\Mink\Driver\GoutteDriver',
    +  ];
    

    What's the general concept here? Policing or allowing simplified names for $this->minkDriver?

  2. +++ b/core/modules/simpletest/src/BrowserTestBase.php
    @@ -181,6 +180,31 @@
    +  protected $minkSessionName = 'default';
    

    Cool, that works.

  3. +++ b/core/modules/simpletest/src/BrowserTestBase.php
    @@ -191,11 +215,11 @@
    +    $driver = new $this->minkAvailableDrivers[$this->minkDriver]();
    

    IMHO parameter support for drivers is a must.

  4. +++ b/core/modules/simpletest/src/BrowserTestBase.php
    @@ -290,6 +314,26 @@ protected function setUp() {
    +  protected function setDefaultDriver($driver) {
    +    if (array_key_exists($driver, $this->minkAvailableDrivers)) {
    +      $this->minkDriver = $driver;
    +    }
    +    else {
    +      throw new \InvalidArgumentException("Given driver '$driver' is not available.");
    +    }
    +  }
    

    If there is a good argument for restricting available drivers. I would love to here it but I see this as reducing flexibility with little additional benefit.

I think we need to be able to set the mink driver externally. CI managers should be able to run multiple passes of browser tests using different drivers if necessary to meet their testing requirements.

Imagine Travis CI (.travis.yml)

script:
  # Run PHP Unit and Kernel tests.
  - cd core && vendor/bin/phpunit --verbose && cd $TRAVIS_BUILD_DIR
  # Run default browser Tests.
  - php ./core/scripts/run-tests.sh --php $(which php) --url $SIMPLETEST_BASE_URL --class "\Drupal\foo\Tests\AwesomeBrowserTest"
  # Run Browser Tests on Firefox
  - export MINK_DRIVER_FQCN="\Behat\Mink\Driver\Selenium2Driver"
  - export MINK_DRIVER_ARGS='["firefox", null, "http://example-test-server.com:4444/wd/hub"]'
  - php ./core/scripts/run-tests.sh --php $(which php) --url $SIMPLETEST_BASE_URL --class "\Drupal\foo\Tests\AwesomeBrowserTest"

In this case, the test doesn't need to know which driver is being used.

hussainweb’s picture

@Jaesin: How would you suggest passing an object as a parameter? I checked different drivers and ZombieDriver takes an object. See http://mink.behat.org/en/latest/drivers/zombie.html

Jaesin’s picture

ZombieDriver seems really cool, I'm looking forward to testing it out once we get this working properly.

Fortunately, "\Behat\Mink\Driver\ZombieDriver" can accept a simple string for it's host. You can also pass the port if necessary if the server is running on something other than port 8124.

export MINK_DRIVER_FQCN="\Behat\Mink\Driver\ZombieDriver"
export MINK_DRIVER_ARGS='["localhost","8125"]'

It would be possible to inspect the "MINK_DRIVER_ARGS" to find a class and argument definition that would be overkill IMHO. Instead, I would suggest the requirement of a custom module to deal with edge cases. I think documenting this will suffice.

For instance create a custom module named "custom_ci"
export MINK_DRIVER_FQCN="\Drupal\custom_ci\CI\ZombieDriverWrapper"

dawehner’s picture

I agree with @jaesin that we should not hardcode the list of available drivers and passing along those variables is a good idea.

ZombieDriver seems really cool, I'm looking forward to testing it out once we get this working properly.

Well, while zombie looks cool in theory from my experience I would never use that again in production. Its seriously a wormhole you open up, with an infinite levels of problem to debug it. If you run integration tests, you should use a browser and not just emulate one.

tunic’s picture

@Jaesin, I think tests should be aware of the driver they need because the drivers are not absolutely equivalent. For example, if a test does need JavaScript (for front-end testing) Goutte driver can't be used because it lacks JS support. In fact, Behat itself uses tags to change used driver (add a @javascript tag to a scenario and a driver with JS support is used), making tests driver aware. On the other hand the parameters passed to drivers should be responsibility of the testing engine. For example, with the Selenium2 driver (webdriver) you can use Selenium or PhantomJS.

So, I think driver selection should be decided in the test class but drivers parameters can be passed from the testing engine.

@dawehner Yes, available drivers should not be hardcoded, my point was to be able to change the driver first with hardcoded available drivers and after that add the mechanism to have discoverable drivers.

Brief:

  1. Allow to swap drivers in the test class.
  2. Allow to pass external parameters to driver as Jaesin suggests.
  3. Mechanism to add available drivers (Plugin way?).
Jaesin’s picture

Hi @tunic thanks for your input. I think tests can still be aware of the drivers they need because we are only overriding the default driver. If tests need to use multiple sessions with different drivers, they can still do that by overriding "\Drupal\simpletest\BrowserTestBase::initMink()". At that point it will be up to the test if they respect the environment overrides.

If you are designing the continuous integration system, you will have to assume some responsibility for giving the tests a fair chance. For example, if you run a browser test that requires JS and you switch the driver to goutte, you can expect failure.

I think test groups can help out here, from your CI configuration you should be able to run test groups. You can set the environment variables and run the appropriate groups. Then unset or change them to run another test group (or specify --class).

Which brings up the point, we should probably change the @group for BrowserTestBaseTest to 'browser_test' (or similar) and when we create JSWebTestBase, we should probably give it a different group name like 'js_test''.

Make the driver swappable more easy

I believe is referring to the default driver. @dawehner?

If it really is necessary to allow overriding sessions by name, that could still be done.
export MINK_DRIVER_CONF='{"default":{"driver_class":"\\Behat\\Mink\\Driver\\GoutteDriver"},"modal_tester":{"driver_class":"\\Behat\\Mink\\Driver\\Selenium2Driver","args":["firefox"]}}'

Which is equivalent to:

<?php
$mink_drivers = [
     "default" => [
       "driver_class" => "\Behat\Mink\Driver\GoutteDriver",
     ],
     "modal_tester" => [
       "driver_class" => "\Behat\Mink\Driver\Selenium2Driver",
       "args" => ["firefox"],
     ]
   ]
?>

Something like this:

<?php
if (strpos(trim($mink_env_driver_conf), '{"') === 0) {
  $mink_env_driver_conf = json_decode($mink_env_driver_conf);
} else {
  $mink_env_driver_conf = ["default" => ["driver_class" => $mink_env_driver_conf]];
}
?>

Could be used to allow just the class to be set in the environment variable since having to create a JSON string could be considered bad DevX if you just want to override the default driver.

dawehner’s picture

Issue tags: +rc eligible
tunic’s picture

FileSize
2.42 KB

Hi Jaesin m thanks for your comments, I've decided to start again.

Patch that adds a function to get default driver instance, taking into account env params.

Subclasses can just override BrowserTestBase::minkDriverFQCN and BrowserTestBase::minkDriverArgs to set another Mink driver class and params. If provided, environment conf is used over class properties.

I think overriding params by session name is very interesting but I didn't add it yet, first review a simpler patch.

Status: Needs review » Needs work

The last submitted patch, 39: step_1_5_make_the-2573165-39.patch, failed testing.

dawehner’s picture

I'm wondering why we not go with something more like behat style, which is about tagging individual test classes with for example 'javascript' and then use the testsuite
to filter for appropriate tests, as for example, ideally we want to run all the functional tests not only with Goutte but also with just phantomjs.

tunic’s picture

Status: Needs work » Needs review
FileSize
2.48 KB

Bad patch in #39, this one should pass.

grom358’s picture

$reflector = new ReflectionClass($this->minkDriverFQCN);
$driver = $reflector->newInstanceArgs($this->minkDriverArgs);

Don't need reflection here.. can use:

$class = $this->minkDriverFQCN;
$driver = new $class($this->minkDriverArgs);

Also this patch is making it so subclasses can change the driver used and parameters for the driver, which is step forward. But I still think we need some global way of adding Mink sessions so they available globally for all tests. I don't think we should have subclasses or tests having to setup mink sessions.

elachlan’s picture

Changed patch based on @grom358's suggestions.

tunic’s picture

@groom358 this class sets up the default session, most tests only need one session. Given that tests can modify the default session shape (driver and drivers params) in the sublclass (needed as BrowserTestBase is an abstract class) or using external params I think it covers most cases. I agree that multiple sessions support is a good feature but it 's better to add it in another issue so we can going forward step by step. That part should be done using BrowserTestBase::registerSessions(). Currently is an empty function, we can add a new issue to add content to that function.

@dawehner That functionality is provided by Behat. If we add it we may be doing the same Behat job on parallel, not sure if it's better to just wait and add Behat.

Added new patch, similar to #44 but removed a comment about the not-used-anymore ReflectionClass and avoiding the $class temporary variable.

Interdiff from #42.

dawehner’s picture

@dawehner That functionality is provided by Behat. If we add it we may be doing the same Behat job on parallel, not sure if it's better to just wait and add Behat.

Well, waiting would need time. We want to have something sort of usable rather yesterday than tomorrow, so sure, let's go with the minimal approach which is that test classes choose their driver. We can always iterate later this is for sure.

Wim Leers’s picture

  1. +++ b/core/modules/simpletest/src/BrowserTestBase.php
    @@ -182,6 +182,20 @@
    +  /*
    ...
    +  /*
    

    Nit: /**.

  2. +++ b/core/modules/simpletest/src/BrowserTestBase.php
    @@ -182,6 +182,20 @@
    +   * Mink FQNC for the default driver to use.
    ...
    +  protected $minkDriverFQCN = '\Behat\Mink\Driver\GoutteDriver';
    

    Is this always the default driver?

    If it is, then shouldn't the variable name be defaultMinkDriverFQCN?

dawehner’s picture

Status: Needs review » Reviewed & tested by the community
+++ b/core/modules/simpletest/src/BrowserTestBase.php
@@ -193,16 +207,50 @@
+    if ($arg_json = getenv('MINK_DRIVER_ARGS')) {
+      $this->minkDriverArgs = json_decode($arg_json);
+    }
...
+    if ($minkDriverFQCN = getenv('MINK_DRIVER_FQCN')) {
+      if (class_exists($minkDriverFQCN)) {
+        $this->minkDriverFQCN = $minkDriverFQCN;
+      }
+      else {

I think on the phantomjs issue we want to provide default values for the args

alexpott’s picture

Status: Reviewed & tested by the community » Needs work
  1. +++ b/core/modules/simpletest/src/BrowserTestBase.php
    @@ -182,6 +182,20 @@
    +  /*
    +   * Mink FQNC for the default driver to use.
    +   *
    +   * @var string.
    +   */
    +  protected $minkDriverFQCN = '\Behat\Mink\Driver\GoutteDriver';
    

    Let's just call this $minkDriverClass and fix the docblock. We don't bother with the FQCN label anywhere else.

  2. +++ b/core/modules/simpletest/src/BrowserTestBase.php
    @@ -193,16 +207,50 @@
    +    if ($minkDriverFQCN = getenv('MINK_DRIVER_FQCN')) {
    

    Let's just call the env variable MINK_DRIVER_CLASS

  3. +++ b/core/modules/simpletest/src/BrowserTestBase.php
    @@ -182,6 +182,20 @@
    +  /*
    +   * Mink FQNC for the default driver to use.
    +   *
    +   * @var string.
    +   */
    +  protected $minkDriverFQCN = '\Behat\Mink\Driver\GoutteDriver';
    +
    +  /*
    +   * Mink default driver params.
    +   *
    +   * @var array
    +   */
    +  protected $minkDriverArgs;
    

    I think these should contain details about how to set them from the environment and especially for the second one that expected format of the environment variable is json.

tunic’s picture

Changes:

  1. $minkDriverFQCN and $minkDriverArgs renamed to $minkDefaultDriverClass and $minkDefaultDriverArgs.
  2. Added documentation on param overriding.
  3. Recover the use of ReflectionClass. The default driver params is an array and each item on the array is a constructor parameter. Using RelfectionClass this is possibe, using just new $this->minkDefaultDriverClass($this->$minkDefaultDriverArgs) all params are received in the first constructor parameter.
  4. A note about overriding driver params from environment: some drivers needs obejcts as constructor parameters (for example, GoutteDriver needs a Client instance as first parameter). This makes overriding this parameters too complex.

tunic’s picture

Status: Needs work » Needs review

Ooops, changing status.

dawehner’s picture

Status: Needs review » Needs work
+++ b/core/modules/simpletest/src/BrowserTestBase.php
@@ -183,18 +183,31 @@
+   *
+   * Value can be overriden using the environment variable MINK_DRIVER_ARGS.
...
+  protected $minkDefaultDriverClass = '\Behat\Mink\Driver\GoutteDriver';

Isn't it a different environment variable? It should be also overridden and not overriden ...

tunic’s picture

Status: Needs work » Needs review
FileSize
3.06 KB
1001 bytes

Yes, you are absolutely right, fixing errors...

dawehner’s picture

Status: Needs review » Reviewed & tested by the community

Thank you

alexpott’s picture

Status: Reviewed & tested by the community » Fixed

Committed e778f7c and pushed to 8.0.x. Thanks!

  • alexpott committed e778f7c on 8.0.x
    Issue #2573165 by tunic, hussainweb, elachlan, dawehner, Jaesin, grom358...
jibran’s picture

We didn't add any tests for the functionality and no change record. :(

tunic’s picture

Yay! This is my first commit to Drupal Core, thank you for reviewing and for your patience :)

alexpott’s picture

@jibran - nothing has changed and until we implement a testsuite that uses this functionality testing is hard to pointless.

Status: Fixed » Closed (fixed)

Automatically closed - issue fixed for 2 weeks with no activity.