我使用Mink Extension的预定义步骤定义运行了一些测试。只要他们使用英语,他们就会工作。
现在我尝试了德国步骤的以下场景:
# language: de
Funktionalität: Demo
@javascript
Szenario: Test 1
Angenommen I am on "/"
Angenommen ich bin auf "/"
...
Behat现在告诉我,德语步骤定义是未定义的,而英语版本可以使用。
根据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
答案 0 :(得分:4)
基本上你没有做错任何事。
虽然Behat / Gherkin本身的翻译包含在behat.phar文件中,但mink_extension.phar档案中缺少MinkExtension中步骤定义的翻译。
这似乎是这种情况,因为build script仅包含MinkExtension / src /中没有MinkExtension / i18n /的文件。您可以打开issue for MinkExtension以解决此问题。
作为一种解决方法,我建议使用composer安装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