1

Behat と Mink に問題があります。使用ドライバーはグーテ。Symfony 2.1 アプリケーションをテストしようとしています。

私のbehat.yml :

default:
extensions:
    Behat\Symfony2Extension\Extension:
        mink_driver: true
    Behat\MinkExtension\Extension:
        base_url: 'http://localhost/project/web/app_dev.php'
        goutte: ~

私のtest.feature :

Feature: Test
   In order to log-in
   As a user
   I need to be able to use the login-form

   Scenario: Logging in
       Given I am on "/login"
       When I fill in "username" with "admin"
       And I fill in "password" with "password"
       And I press "_submit"
       Then show last response
       Then I should see "Hello"

テストを実行しようとすると (Windows 7 の場合):

bin\behat @MyTestBundle

テストは

そして、「_submit」を押します

このエラーで:

Current URI must be an absolute URL ("/app_dev.php").

ほとんどすべての可能な base_url パスを既に試しましたが、うまくいきませんでした。

この問題を解決する方法はありますか?

私が提出しようとしているフォーム:

<form action="/app_dev.php/login_check" class="form-horizontal" method="post">
    <fieldset>
        <div class="control-group">
            <label class="control-label" for="username">Nazwa użytkownika:</label>

            <div class="controls"><input type="text" id="username" name="_username" value=""/></div>
        </div>

        <div class="control-group">
            <label for="password" class="control-label">Hasło:</label>

            <div class="controls"><input type="password" id="password" name="_password"/></div>
        </div>

        <div class="control-group">
            <div class="controls">
                <label for="remember_me" class="checkbox">
                    <input type="checkbox" id="remember_me" name="_remember_me" value="on"/>Nie wylogowuj mnie
                </label>
            </div>

        </div>
        <div class="form-actions">
            <input type="submit" class="btn-primary" id="_submit" name="_submit"
                   value="Zaloguj"/>
            <a href="/app_dev.php/register/" class="btn btn-success">Rejestracja</a>
        </div>
    </fieldset>
</form>
4

2 に答える 2

1

私は今日私の問題の解決策を見つけました。

実際、問題はパス関数にありました。path関数はtwigurl関数に置き換える必要があります。

興味深い点:フォームのアクション属性で関数をurlに変更しても効果はありません。私の基本レイアウトでは、次のようになりました。

<base href="{{ path('_default')}}"/>

この1行のコードが問題の原因でした。次のようになります。

<base href="{{ url('_default')}}"/>

この変更後、テストは期待どおりに機能します。

于 2012-10-26T18:51:36.117 に答える
1

小枝テンプレートでは、login_check URL を作成するときに、絶対 URL を作成する必要があります (絶対 URL を作成するには、パスの 3 番目の引数を true にします)。

{{ path('route', {}, true) }}
于 2012-09-17T19:58:54.143 に答える