Question

Is there any way to use parameteres/variables in behat scenarios?

For example:

Scenario: Description
    Given I am on "https://{{company_name}}.example.com/"
    When I click on "xxxxx"
    And I wait 2 seconds
    Then I should see {{company_name}}

and in behat.yml

default:
    extensions:
        Behat\MinkExtension\Extension:
            goutte: ~
            selenium2: ~

companyX:
    params:
        company_name: XXX
    extensions:
        Behat\MinkExtension\Extension:

companyY:
    params:
        company_name: YYY
    extensions:
        Behat\MinkExtension\Extension:

I think about using some template engine and render every set of tests separately, but maybe there is easier solution.

Était-ce utile?

La solution

You cannot pass parameters to the .feature file. Just put the configuration inside behat.yml. Instead of using the step:

Given I am on "https://{{company_name}}.example.com/"

use:

Given I am on homepage

And set the url with 'base_url' in behat.yml:

default:
    extensions:
        Behat\MinkExtension\Extension:
            goutte: ~
            selenium2: ~

companyX:
    extensions:
        Behat\MinkExtension\Extension:
            base_url: https://companyx.example.com/

companyY:
    extensions:
        Behat\MinkExtension\Extension:
            base_url: https://companyy.example.com/

Then depending on how you run behat:

behat --profile companyX
behat --profile companyY

a different url will be used.

More info about this: http://docs.behat.org/guides/7.config.html#context

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top