在我的composer.json中:
{
...
"behat/behat": "^3.6",
"behat/mink-extension": "^2.3",
"behat/mink-goutte-driver": "^1.2",
"behat/mink-selenium2-driver": "^1.4"
}我的behat.yml:
default:
autoload:
'': %paths.base%/features/bootstrap
suites:
default:
path:
- %paths.base%/features
contexts:
- FeatureContext
- Behat\MinkExtension\Context\MinkContext
- Behat\MinkExtension\Context\RawMinkContext
extensions:
Behat\MinkExtension:
base_url: https://localhost:8443
goutte: ~
selenium2: ~
javascript_session: selenium2
files_path: 'vendor'
sessions:
default:
selenium2: ~我的功能上下文:
class FeatureContext extends MinkContext
{
/** @var Behat\Mink\Element\DocumentElement */
protected $page;
/**
* Initializes context.
*
* Every scenario gets its own context instance.
* You can also pass arbitrary arguments to the
* context constructor through behat.yml.
*/
public function __construct()
{
$this->page = $this->getSession()->getPage();
}
/**
* @Given /^I am not logged in$/
*/
public function iAmNotLoggedIn()
{
// Do nothing
}
/**
* @When /^I visit \.*$/
*/
public function iVisit($page)
{
$this->getSession()->visit('/login');
}
/**
* @Then /^I should see the login page$/
*/
public function iShouldSeeTheLoginPage()
{
$this->assertSession()->elementExists('css', '#username');
$this->assertSession()->elementExists('css', '#password');
$this->assertSession()->elementExists('css', '#submit');
}
}我的功能文件:
Feature: Viewing the main page as an unauthenticated user
@javascript
Scenario: View the main page
Given I am not logged in
When I visit "/login"
Then I should see the login page当我尝试运行behat命令时,我得到错误Mink instance has not been set on Mink context class. Have you enabled the Mink Extension?。我已经查看了围绕此错误实例的问题,并遵循了尽可能多的步骤来修复,但似乎没有一个步骤起到了作用。我是不是遗漏了什么?
发布于 2020-05-08 03:29:39
因此,在FeatureContext的构造函数中,我试图在会话被完全实例化之前访问它。删除该行已解决此问题。
https://stackoverflow.com/questions/61645382
复制相似问题