功能、场景和具有Lettuce的功能引擎的Python对象的步骤。
在这里,你会发现关于这些对象的非常“繁琐”的细节。如果你在这里找不到一个好的介绍,你可能去阅读feature的介绍比较好。
为了举例说明下面的属性和方法的使用,我们认为有一个功能文件叫做some.feature
# language: en
# just a comment
# another one
Feature: some feature
Here comes
The feature
Description
Scenario: try out something
Given I show lettuce running
Then I should be happy
功能
Feature.name
包含了功能名字的字符串
feature.name == 'some feature'
Feature.scenarios
场景对象列表
场景竖线可以如下使用
feature.scenarios[0].name == 'try out something'
Feature.described_at
一个功能描述对象,有对功能进行了介绍的文件和行。Lettuce使用它输出这些元数据。
属性described_at可以如下使用
# the line in which the feature started
feature.described_at.line == 5
# the filename path
'some.feature' in feature.described_at.file
# a tuple with the lines that contains the feature description
feature.described_at.description_at == (6, 7, 8)
Feature.max_length
计算组成该功能的所有行的最大长度的属性。
主要用于shell输出,查找哪里打印功能描述。
例如:
feature.max_length == 21
Feature.get_head
以当前语言中的第一个陈述来表示这个功能,后面是冒号和功能名。
例如:
feature.get_head() == 'Feature: some feature'
但是,如果用巴西葡萄牙语编写同样的功能,例如:
# language: pt-br
# apenas um comentário
# e outro
Funcionalidade: alguma funcionalidade
Aqui vem
a descrição
da funcionalidade
Cenário: ...
...
Feature.get_head()将会给出
feature.get_head() == 'Funcionalidade: alguma funcionalidade'
totalresult
totalresult.features_ran
整数,执行过的全部功能
totalresult.features_passed
整数,执行通过的全部功能
totalresult.scenarios_ran
整数,执行过的所有场景
totalresult.scenarios_passed
整数,执行通过的所有场景
totalresult.steps
整数,执行过的步骤数
totalresult.proposed_definitions
没有步骤定义的步骤列表
场景
scenario.steps
场景对象列表
场景属性可以如下使用
scenario.steps[0].sentence == 'try out something'
步骤
Step.sentence
展示步骤字符串
step.sentence == 'Given I show lettuce running'
Step.passed
布尔类型,如果步骤执行正确
Step.failed
布尔类型,如果步骤在执行中出错
step definition
一个可用于任何Python函数的修饰,以一个正则表达式字符串作为参数,函数参照以下步骤。
from lettuce import step
@step('I am (happy|sad)')
def show_lettuce_running_here(step, action):
if action == 'happy':
return # everything is fine!
else:
assert False, 'you should be happy, dude!'