2013-02-11 35 views
3

我已經使用Mink擴展的預定義步驟定義運行了一些測試。只要他們使用英語,他們就會工作。使用Behat預定義步驟的翻譯(Phar install)

現在,我已經試過以下情形與德國步驟:

# language: de 
Funktionalität: Demo 

    @javascript 
    Szenario: Test 1 
    Angenommen I am on "/" 
    Angenommen ich bin auf "/" 
    ... 

貝哈特現在告訴我,德國的步驟定義是不確定的,而英文版本的作品。

按照CLI幫助,behat --lang de -dl應顯示翻譯的定義,但它只能說明我的英語的...

什麼我錯在這裏做什麼?

編輯: 以下是重建場景的腳本。它遵循臨時目錄中的文檔(http://extensions.behat.org/mink/#through-phar)的安裝步驟並運行測試功能文件。

#!/bin/bash 

set -e 

TEMPDIR=/tmp/behat-$$ 
mkdir $TEMPDIR 
cd $TEMPDIR 

curl http://behat.org/downloads/behat.phar >behat.phar 
curl http://behat.org/downloads/mink.phar >mink.phar 
curl http://behat.org/downloads/mink_extension.phar >mink_extension.phar 

cat >behat.yml <<EOF 
default: 
    extensions: 
    mink_extension.phar: 
     mink_loader: 'mink.phar' 
     base_url: 'http://behat.org' 
     goutte:  ~ 
EOF 

mkdir features 
cat >features/test.feature <<EOF 
# language: de 
Funktionalität: Demo 

    Szenario: Öffne Startseite DE + EN 
    Angenommen I am on "/" 
    Angenommen ich bin auf "/" 
EOF 

php behat.phar 

回答

4

基本上你沒有做錯任何事。

儘管Behat/Gherkin本身的翻譯包含在behat.phar文件中,但MinkExtension.phar歸檔中缺少MinkExtension的步驟定義的翻譯。

這似乎是這種情況,因爲build script只包含MinkExtension/src /中沒有MinkExtension/i18n /的文件。你可以打開一個issue for MinkExtension來解決這個問題。

作爲一種解決方法,我建議使用作曲家安裝Behat/Mink,而不是使用phar檔案。

創建以下文件composer.json:

{ 
    "require": { 
     "behat/behat": "2.4.*@stable", 
     "behat/mink": "1.4.*@stable", 
     "behat/mink-extension": "*", 
     "behat/mink-goutte-driver": "*", 
     "behat/mink-selenium2-driver": "*" 
    }, 
    "minimum-stability": "dev", 
    "config": { 
     "bin-dir": "bin/" 
    } 
} 

,然後用安裝:

curl http://getcomposer.org/installer | php 
php composer.phar install