2013-02-11 33 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