无法打开流:没有这样的文件或目录错误与behat

时间:2015-11-10 15:57:57

标签: laravel behat

我正在尝试为我继承的应用程序开发一些测试。这是一个laravel应用程序,我一直在尝试使用behat因为它让我想起了黄瓜。问题是,当没有显示字符串时,正在告诉我一个字符串。

我有登录成功/失败测试

这是我失败的情景

  Scenario: Log in with username and password and go to watercooler

  Given I am on "/auth/login"
  Then I should see "E-Mail Address"
  Then I should see "Password"
  Then I should see "Remember Me"
  Then I should see "Login"
  Then I should see "Register"
  Then I should see "Forgot Your Password?"
  Then I should not see "Errors"

  When I fill in the following:
      | email    | example@example.com |
      | password | password                 |
  And I press "Login"

  Then I should be on "/p/watercooler"
  Then the response should not contain "Whoops, looks like something went wrong."

一切都可以到达最后一行,但它一直告诉我文本正在页面上显示,而不是。

我得到的确切错误是

Then the response should not contain "Whoops, looks like something went wrong." # FeatureContext::assertResponseNotContains()
The string "Whoops, looks like something went wrong." appears in the HTML response of this page, but it should not. (Behat\Mink\Exception\ExpectationException)

如果我添加一行来搜索应该在页面上显示的文本,它会告诉我文本也在那里。

我也试过

Then I should not see "Whoops, looks like something went wrong."

以及

And I should not see "Whoops, looks like something went wrong."

And the response should not contain "Whoops, looks like something went wrong."

错误我正在打印最后一个回复,因为我所得到的错误就是这个

 Warning: file_get_contents(/Library/WebServer/Documents/.../public/build/rev-manifest.json): failed to open stream: No such file or directory in /Library/WebServer/Documents/.../vendor/laravel/framework/src/Illuminate/Foundation/helpers.php line 668

我尝试过的每个测试框架都抛出了这个错误,以至于我认识到了helpers.php文件中的这一行。

我是否需要以某种方式触发gulp运行,或者什么?老实说,我不知道如何解决这个问题,并且一直在努力寻找关于这个主题的任何内容。

解决

在morphatic的回答之后找到答案。当我使用“并打印最后一个响应”时,我能够获得正在发生的实际错误的文本,并意识到它正在跟踪我的文件的错误路径。

1 个答案:

答案 0 :(得分:1)

我相信您的测试正在按照您希望的方式运行,它告诉您代码存在问题,或者您的测试配置可能存在问题。在使用Behat时,这里有一些陷阱:

  1. 我不知道你是如何设置它的,但在我的应用程序中,当我使用Behat时,我设置了一个单独的APP_ENV=acceptance环境。我将所有配置值存储在.env.behathere's an example app that demonstrates the configuration for testing with Behat)。
  2. 确保您为APP_KEY设置.env.behat。如果您忘记了这一点,即使您的代码设置正确,也会收到错误。
  3. 这是我遇到这种情况时所做的事情。添加以下行:

    And print last response
    

    在你的场景中给你带来麻烦的线之前。然后你就可以看到Behat抱怨的错误了。