普通网友 2015-11-04 14:10
浏览 52

在laravel 5上运行behat时出错

1st Try:--- When i run behat with feature set as

Feature: Authentication
Checking Application Authentication Functionality.

@javascript
Scenario: Admin Redirect Page
    Given I am on "/admin/dashboard"
    Then I should be on "/admin/login"

Scenario: Admin Login Failure
    When I go to "/admin/login"
    And I fill in "email" with "testaccount@gmail.com"
    And I fill in "password" with "wrongpassword"
    And I press "Login"
    Then I should see "Login Failure"

The first scenario works but the second one fails, response :-

Scenario: Admin Redirect Page        # app/tests/behat/features/auth.feature:5
    Given I am on "/admin/dashboard"   # FeatureContext::visit()
    Then I should be on "/admin/login" # FeatureContext::assertPageAddress()

  Scenario: Admin Login Failure                                 # app/tests/behat/features/auth.feature:9
    When I go to "/admin/login"                               # FeatureContext::visit()
      Target [Illuminate\Contracts\Http\Kernel] is not instantiable. (Illuminate\Contracts\Container\BindingResolutionException)

2nd Try:--- I tried removing 1st scenario to test if my feature was broken and behat ran successfully.

Scenario: Admin Login Failure                                 # app/tests/behat/features/auth.feature:9
    When I go to "/admin/login"                                 # FeatureContext::visit()
    And I fill in "email" with "testaccount@gmail.com" # FeatureContext::fillField()
    And I fill in "password" with "wrongpassword"               # FeatureContext::fillField()
    And I press "Login"                                         # FeatureContext::pressButton()
    Then I should see "Login Failure"                           # FeatureContext::assertPageContainsText()

1 scenario (1 passed)
5 steps (5 passed)
0m3.70s (23.80Mb)

I am not sure why it is failing when i implement 2 scenario.

3rd Try:---

Feature: Authentication
    Checking Application Authentication Functionality.

    @javascript
    Scenario: Admin Redirect Page
        Given I am on "/admin/dashboard"
        Then I should be on "/admin/login"

    Scenario: Admin Redirect Page
        Given I am on "/admin/dashboard"
        Then I should be on "/admin/login"

    Scenario: Admin Redirect Page
        Given I am on "/admin/dashboard"
        Then I should be on "/admin/login"

result:-

Feature: Authentication
  Checking Application Authentication Functionality.

  @javascript
  Scenario: Admin Redirect Page        # app/tests/behat/features/auth.feature:5
    Given I am on "/admin/dashboard"   # FeatureContext::visit()
    Then I should be on "/admin/login" # FeatureContext::assertPageAddress()

  Scenario: Admin Redirect Page        # app/tests/behat/features/auth.feature:9
    Given I am on "/admin/dashboard"   # FeatureContext::visit()
      Target [Illuminate\Contracts\Http\Kernel] is not instantiable. (Illuminate\Contracts\Container\BindingResolutionException)
    Then I should be on "/admin/login" # FeatureContext::assertPageAddress()

  Scenario: Admin Redirect Page        # app/tests/behat/features/auth.feature:13
    Given I am on "/admin/dashboard"   # FeatureContext::visit()
      Target [Illuminate\Contracts\Http\Kernel] is not instantiable. (Illuminate\Contracts\Container\BindingResolutionException)
    Then I should be on "/admin/login" # FeatureContext::assertPageAddress()

--- Failed scenarios:

    app/tests/behat/features/auth.feature:9
    app/tests/behat/features/auth.feature:13

3 scenarios (1 passed, 2 failed)
6 steps (2 passed, 2 failed, 2 skipped)
0m2.87s (24.19Mb)
  • 写回答

1条回答 默认 最新

  • dongtao5104 2015-11-07 05:36
    关注

    Just figured it out, you need to add these 2 for all scenarios. If anyone have same issue, this may of be any help.

    @javascript @mink:selenium_session
    

    by default my config was to run on cmd line by behat.yml had this

    sessions:
            default_session:
              laravel: ~
            goutte_session:
              goutte: ~
            selenium_session:
              selenium2:
                wd_host: http://127.0.0.1:4444/wd/hub
    

    so adding @javascript runs test on browser and by specifying mink session to use selenium gives you access to all javascript functionality of your app.

    评论

报告相同问题?

悬赏问题

  • ¥15 虚幻5 UE美术毛发渲染
  • ¥15 CVRP 图论 物流运输优化
  • ¥15 Tableau online 嵌入ppt失败
  • ¥100 支付宝网页转账系统不识别账号
  • ¥15 基于单片机的靶位控制系统
  • ¥15 真我手机蓝牙传输进度消息被关闭了,怎么打开?(关键词-消息通知)
  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度
  • ¥30 关于#r语言#的问题:如何对R语言中mfgarch包中构建的garch-midas模型进行样本内长期波动率预测和样本外长期波动率预测