我试图从命令行运行特定的Behat场景,这就是我正在做的事情:
this.onWsMessage = function(packet) {
log('Message Received from ');
if (cmd != '') {
log('----------------------------------------->' + cmd);
source[this.getId()].sshStream.write(cmd + '\n');
}
};
var client = clients[cid];
sshClient
.on('ready', function() {
console.log('CONNECTED');
sshClient.shell({pty: true}, function(err, stream) {
_shellHandler(err, stream, client);
});
})
.on('error', function(err) {
console.log('ERROR', err);
})
.connect(serverInfo);
}
function _shellHandler(err, stream, client) {
source[client.getId()].sshStream = stream;
stream
.on('close', function() {
log('ssh connection close');
//sshClient.end();
this._client.end();
})
.on('data', function(data) {
console.log(stream);
var msg = data.toString().replace(msgPattern, '');
this.sendUTF(msg, 'ssh');
}.bind(client));
}
然而,这并没有结束这个场景。
如果我跑
$ bin/behat features/features/baseline.feature:3
我可以运行整个功能文件。
这里是文件的样子 - 我尝试运行的场景在我的文本编辑器的第3行:
bin/behat features/features/baseline.feature
答案 0 :(得分:32)
首先,您应该添加功能文件的完整描述,例如:
Feature: Home page functionality
In order to use application functionality
As a website user
I need to be able see the home page
Scenario
也应该有描述。
您可以使用标记运行behat场景:
bin/behat --tags @api
基本上每个Scenario
都有自己的标签。 Behat命令将尝试查找具有@api
标记的所有方案。
您还可以为整个Feature文件指定标记:
@whole-feature-file
Feature: Home page functionality
使用部分名称运行场景:
bin/behat --name="element of feature"
或者根据@greggles评论:
指定要素文件名称和行号,例如
bin/behat features/file.feature:123
其中123是Scenario: Clear cache
有关详细信息,请参阅behat docs
答案 1 :(得分:1)
我发现只有在执行特定方案时才必须使用功能文件的完整路径。例如,如果您的要素文件位于/ var / www / html / tests / features / features中,而您在/ var / www / html / tests中则尝试此命令:
{
"data": [
{
"item": "book",
"date": "9.10."
},
{
"item": "apple",
"date": "10.10."
},
{
"item": "pen",
"date": "11.10."
}
]
}
答案 2 :(得分:0)
发现您可以简单地使用任何自定义标签(例如@foobar
)标记方案。
Feature:
@api @foobar
Scenario: Clear cache
Given the cache has been cleared
When I am on the homepage
Then I should get a "200" HTTP response
Scenario:
Given I am not logged in
When I am on the homepage
Then I should see the text "We love our users"
然后仅在以下情况下运行:
behat --tags foobar