如何覆盖 Oro 中的 behat 测试功能上下文?
How can I override behat tests Feature Context in Oro?
我更新了 Oro 应用程序中的登录表单,现在 behat 测试无法使用 'Given I login as AmandaRCole@example.org buyer'.
登录应用程序
问题在于,在此功能上下文 (\Oro\Bundle\ApplicationBundle\Tests\Behat\Context\CommerceMainContext) 中,它搜索 'Email Address' 和 'Password' 表单输入,但是这些表单输入现在有另一个名称。我如何根据需要覆盖此上下文,或者我如何更改方法以使测试绿色化?
登录步骤在 OroMainContext
中实现
它通过在每个测试套件中注入的 behat.yml
配置隐式或显式(例如 OroUserBundle suite)。
选择器 _username
、_password
和 _submit
在 loginAsUserWithPassword
方法中被硬编码。
您可以通过 BehatExtension 将所有 behat 套件中的 OroMainContext 替换为您的继承者,请参阅 Behat\Testwork\ServiceContainer\Extension
,或者您可以重写 Oro\Bundle\FormBundle\Tests\Behat\Element\OroForm
并在那里进行肮脏的修改,因为这 class将填写表格。不要忘记为 behat.yml
中的 OroForm
元素重写 class
我猜,正确的方法是创建一个登录名,从 OroForm
扩展而来,应该在 OroMainContext
中使用。此表单将具有接受两个参数 login
和 password
的方法 fill
。在这种情况下,您将只重写这个微小的元素来改变流程。但是,我也猜想,这是一个很长的路要走。
我更新了 Oro 应用程序中的登录表单,现在 behat 测试无法使用 'Given I login as AmandaRCole@example.org buyer'.
登录应用程序问题在于,在此功能上下文 (\Oro\Bundle\ApplicationBundle\Tests\Behat\Context\CommerceMainContext) 中,它搜索 'Email Address' 和 'Password' 表单输入,但是这些表单输入现在有另一个名称。我如何根据需要覆盖此上下文,或者我如何更改方法以使测试绿色化?
登录步骤在 OroMainContext
中实现
它通过在每个测试套件中注入的 behat.yml
配置隐式或显式(例如 OroUserBundle suite)。
选择器 _username
、_password
和 _submit
在 loginAsUserWithPassword
方法中被硬编码。
您可以通过 BehatExtension 将所有 behat 套件中的 OroMainContext 替换为您的继承者,请参阅 Behat\Testwork\ServiceContainer\Extension
,或者您可以重写 Oro\Bundle\FormBundle\Tests\Behat\Element\OroForm
并在那里进行肮脏的修改,因为这 class将填写表格。不要忘记为 behat.yml
OroForm
元素重写 class
我猜,正确的方法是创建一个登录名,从 OroForm
扩展而来,应该在 OroMainContext
中使用。此表单将具有接受两个参数 login
和 password
的方法 fill
。在这种情况下,您将只重写这个微小的元素来改变流程。但是,我也猜想,这是一个很长的路要走。