一个很好的BDD配料组合
lettuce_utils的Python项目详细描述
生菜是一个有用的组合,一些伟大的bdd包,如生菜和碎片,调味料与一些常见的模块。它的目标是让编写验收测试变得非常有趣。
莴苣实用程序最初被命名为salad,在[wieden+kennedy]开发(http://wk.com),随后在bsd许可下被[open sourced]开发(https://github.com/wieden-kennedy/salad)。
[![构建状态](https://secure.travis-ci.org/lettuce utils/莴苣utils.png?branch=master)(http://travis ci.org/lettuce utils/莴苣utils)
这是一个关于莴苣的悬而未决的请求。在安装完成之前,您必须手动安装它。
pip install git+https://github.com/skoczen/莴苣.git egg=莴苣
````
``python
``installed廑apps+=("莴苣.django",)
```
/>
沙拉主要是[莴苣](http://莴苣.it/)。所以,你应该兴致勃勃地使用他们的[伟大的文档](http://莴苣.it/contents.html)。如果你正在与浏览器交互,你可以通过很棒的[碎片](https://github.com/cobrateam/splinter)来完成,他们的[文档](http://splinter.readthedocs.org/)也很棒。
salad 101
==
-——
1.在应用程序中创建一个"features"目录。
``bash
mkdir features
```
>1。在feature s目录中,创建一个'our website is up.feature'文件,其中包含以下内容:
``小黄瓜
feature:确保莴苣有效,w+k的网站加载
,以确保莴苣作为开发人员有效
我打开了wieden+kennedy网站在使用生菜的情况下:打开w+k网站是可行的,只要我访问url"http://www.wk.com/"
当我环顾四周时,我就会在页面的某个地方看到"wieden+kennedy"
````
运行您的第一个生菜实用程序测试
而且W+K的网站加载了功能/我们的网站启动了。功能:1
以确保莴苣实用程序正常工作功能/我们的网站启动了。功能:2
作为开发人员功能/我们的网站启动了。功能:3
我打开了Wieden+KEnnedy网站使用生菜实用程序功能/我们的网站已启动。功能:4
场景:打开W+K网站Works功能/我们的网站已启动。功能:6
如果我访问URL"http://w w w.w k.com/"功能/我们的网站已启动。PY:8
当我环顾四周的功能/我们的网站是上升的步骤。py:80
然后我应该会看到"wieden+kennedy"在页面的某处的功能/我们的网站是上升的步骤。py:37
1个功能(1个通过)
1个场景(1个通过)
3个步骤(3个通过)
`````r/>
很简单。
salar命令行参数
本地安装。例如
>;如果您得到"生菜实用程序-警告-启动chrome时出错:消息:"chromedriver可执行文件需要在路径中可用。`
>;请确保读取e(使用chrome)[使用chrome]部分。
>;`莴苣实用程序-h'将列出所有浏览器驱动程序。
如果您没有在本地安装浏览器,则可以指定selenium
服务器。For example, if you use SauceLabs and want to test on the iphone:
```
lettuce_utils --browser iphone --remote-url http://username:######AA-####-####-A#A#-#A###AAA####@ondemand.saucelabs.com:80/wd/hub
```
> Replace username with your SauceLabs account name and the password是您的访问密钥。还要注意,除了firefox和chrome之外,浏览器的驱动程序有时会出现不一致的行为。
地形源文件是您最好的信息源,但这里有一个莴苣实用程序的内置:
steps
---
*`browser`-分解成子模块。导入"browser"将获得所有信息。
*`alerts`-处理警报和提示。
*`browsers`-在浏览器之间切换。
*`elements`-验证元素是否存在,是否具有所需的内容或属性。
*`finders`-没有实际步骤-只是帮助函数来查找元素。
*`forms`-与表单域交互-键入、聚焦、选择、填写等。
*`javascript`-运行javascript并验证结果。
*`mouse`-单击、鼠标悬停、鼠标拖出、拖放。
*`navigation`-访问url、后退、前进、刷新。
*`page`-页面标题,url,完整的html。
*`common`-一些实用步骤,比如等待和环顾四周。
*`djangoify`-django关注的步骤,有助于url反转等。
*`everything`-浏览器,common和django。
terrans
--
*`common`-暂时没有。nt.
*`djangoify`-设置/删除django的测试数据库,包括安装了south的south迁移。
*`browser`-在"world.browser"设置浏览器。使用Firefox或
命令行选择的浏览器。
*`Everything`-包括以上所有内容。
step syntax
----
>内置步骤在语法上设计灵活,并实现Splinter支持的所有操作。一般来说,最好的办法就是简单地阅读步骤,看看支持什么。然而,对于"elements"、"forms"和"mouse"的部分,代码有点不透明,因此这里有一个更好的解释来说明这些部分是如何工作的:
通常,当您与表单、页面元素或鼠标交互时,可以将生菜的步骤看作是有一个主题和一个动作。r/>
subjects
--
具有"我的ID"的"我的ID"
<;action>;lt;lt;action>;lt;lt;element thing;field texarea单选按钮;具有css选择器".my css css选择器"
<;action>;具有css选择器".my css选择器"
<;action>;具有"我的css css选择器"的"我的css css选择器"的>;>;"
<;lt;action>复选框标签>;如果您只是在寻找一个链接,那么可以使用值"my value"
````
``gherkin
<;action>;指向"http://someurl.com"的链接
<;action>;指向包含"someurl.com"的url的链接那?)文本"some text"
<;action>;与包含"some t"
````
actions
----
的文本的链接第二部分是actions。要验证是否存在和内容,可以使用以下操作:
``小黄瓜
应该(不)请参见<;主题>;
应该(不)请参见<;主题>;包含"某些文本"
应该(不)请参见<;主题>;完全包含"some text"
应(不)查看<;subject>;具有名为"attr_name"的属性
应(不)查看<;subject>;具有名为"attr_name"的属性,值为"attr value"
应(不)查看页中任何位置的"some text"对于表单,您可以使用以下选项:
``小黄瓜
用"some text"
(慢慢地)在<;subject>;
将"some/file.name"附加到<;subject>;
从<;subject>;
中选择名为"option name"的选项使用<;subject>;
中的值"option_value"
将焦点放在<;subject>;
模糊的<;subject>;
查看<;subject>;的值是(不是)"some text"
````
要使用鼠标,您需要:
``gherkin
单击<;subject>;
将鼠标悬停在<;subject>;
将鼠标悬停在<;subject>;
双击<;subject>;
右键单击<;subject>;
拖动<;subject-1>;并将其放在<;subject-2>;
```
/>
``小黄瓜
如果我访问"http://www.my-test-site.com"
当我从名为"商店"的单选按钮中选择名为"cheese"的选项时,我单击包含"go"
文本的第一个链接,然后我将看到一个带有css选择器的元素。"cheese-shop-banner"
页面上任何地方都看不到"Meatco"。
```
firefox是默认的,但是使用另一个浏览器非常简单。要切换您使用的浏览器,只需键入:
``gherkin
如果我使用chrome
```
tips and tricks
==
与功能文件相同,附加了"-steps"。到目前为止效果很好。对于django应用程序,在应用程序结构中保留每个应用程序的功能也是最简单的。
如果您有建议,请在请求中键入,或打开问题!
使用chrome
----
否则,您可以在http://code.google.com/p/chromium/downloads/list找到您的操作系统:http://code.google.com/p/chromium/downloads/list
和地形,你们都准备好了。` manage.py harvest和所有的莴苣都应该正常工作。
*gotcha alert:*如果您正在为带有"staticfiles"的静态媒体提供服务,则需要将"-d"传递到harvest,以调试模式运行(并启用静态媒体)。
-----------------------------
黄瓜和生菜实用程序允许我们用自然的、人类语言编写测试,从而使bdd变得漂亮。请不要让生菜的内置驱动你的测试结果。如果它们使用的语法符合场景的需要,那么它们是为了方便起见。gherkin语法的一个重要优点是能够创建一个"然后我应该看到我已经登录"的场景。别失去那美丽!
这仍然有效,是一种选择Ion,但要使其正常工作,必须在
features文件夹中包含
`steps.py`文件,其中包含'from莴苣utils.steps.everything import*',以及
`terrans.py`文件,其中包含'from莴苣utils.steps.terrans import*'。
测试我们的项目,这是一个相当新的组件。因此,它将继续发展和改进。没有一个特定的开发图-任何能使编写bdd测试更简单、更快的东西都在表中。欢迎拉取请求!
*0.5(计划)*
*`沙拉主题词汇表'-允许对主题进行项目特定扩展。例如,您可以将"submit button"映射到带有css选择器的"the element"。submit"btn",并将其用于单击、鼠标悬停等操作,而无需为每个置换编写特定步骤。
生菜,它能正确地建立一个测试数据库。合并后将切换回干生菜!
*修复的django导入
*0.4.12*(及以上)
*针对mysql和其他dbs的db安装错误修复。现在一般都能用了!
*version bump
*0.4.8*
*0.4.7*
*travis ci集成
*0.4.6*
*fixedjango+postgressql支持。
*更多的关键测试。
*0.4.4.4.4*
*南部迁移现在基于南部迁移测试/>
*0.4.3*
*增加了iframe上下文切换的步骤。
*0.4.2*
*修复了取消提示代码
*澄清了属性regex以正确匹配。
*将js测试移动到本地文件(不需要Internet连接。)
*0.4.1*
*修复了为单个链接查找元素代码的错误。
*0.4*
*对包含的步骤进行大规模升级。现在有步骤几乎所有你可以做的分裂,友好的,一致的语法!
*为莴苣实用程序的所有步骤编写的功能。这是100%的测试覆盖率,伙计们!
*`browser`步骤现在是一个模块,按交互区域(窗体、鼠标等)组织。`导入步骤。browser仍将保持以前的行为。
*以后的证明:`I access the url`现在已被弃用,取而代之的是更友好的'I visit the url'。"访问"、"访问"和"打开"都是向前访问网页的有效操作。
*向后不兼容:`应该看到"某些文本"`已经改变了含义。
*如果您的意思是*此文本应该出现在该页的HTML中的某个位置*,则使用"应该看到"页面中的某个位置的"某些文本"。
*如果您的意思是*元素我将要描述的应该在页面中并且可见*,请使用"应该看到主题"`
*注意:向后不可比较的更改不会是这里的标准-目前,我非常确定我知道莴苣正在使用的所有地方,所以我宁愿跳一跳,把事情做好。未来向后不兼容的更改将经历一个弃用计划。
credits:
==
我们使用这个包的目的是让一切都变得非常简单,并运行一个甜蜜的bdd设置。
文件,
莴苣实用程序最初被命名为salad,在[wieden+kennedy]开发(http://wk.com),随后在bsd许可下被[open sourced]开发(https://github.com/wieden-kennedy/salad)。
[![构建状态](https://secure.travis-ci.org/lettuce utils/莴苣utils.png?branch=master)(http://travis ci.org/lettuce utils/莴苣utils)
这是一个关于莴苣的悬而未决的请求。在安装完成之前,您必须手动安装它。
pip install git+https://github.com/skoczen/莴苣.git egg=莴苣
````
``python
``installed廑apps+=("莴苣.django",)
```
/>
沙拉主要是[莴苣](http://莴苣.it/)。所以,你应该兴致勃勃地使用他们的[伟大的文档](http://莴苣.it/contents.html)。如果你正在与浏览器交互,你可以通过很棒的[碎片](https://github.com/cobrateam/splinter)来完成,他们的[文档](http://splinter.readthedocs.org/)也很棒。
salad 101
==
-——
1.在应用程序中创建一个"features"目录。
``bash
mkdir features
```
>1。在feature s目录中,创建一个'our website is up.feature'文件,其中包含以下内容:
``小黄瓜
feature:确保莴苣有效,w+k的网站加载
,以确保莴苣作为开发人员有效
我打开了wieden+kennedy网站在使用生菜的情况下:打开w+k网站是可行的,只要我访问url"http://www.wk.com/"
当我环顾四周时,我就会在页面的某个地方看到"wieden+kennedy"
````
运行您的第一个生菜实用程序测试
而且W+K的网站加载了功能/我们的网站启动了。功能:1
以确保莴苣实用程序正常工作功能/我们的网站启动了。功能:2
作为开发人员功能/我们的网站启动了。功能:3
我打开了Wieden+KEnnedy网站使用生菜实用程序功能/我们的网站已启动。功能:4
场景:打开W+K网站Works功能/我们的网站已启动。功能:6
如果我访问URL"http://w w w.w k.com/"功能/我们的网站已启动。PY:8
当我环顾四周的功能/我们的网站是上升的步骤。py:80
然后我应该会看到"wieden+kennedy"在页面的某处的功能/我们的网站是上升的步骤。py:37
1个功能(1个通过)
1个场景(1个通过)
3个步骤(3个通过)
`````r/>
很简单。
salar命令行参数
本地安装。例如
>;如果您得到"生菜实用程序-警告-启动chrome时出错:消息:"chromedriver可执行文件需要在路径中可用。`
>;请确保读取e(使用chrome)[使用chrome]部分。
>;`莴苣实用程序-h'将列出所有浏览器驱动程序。
如果您没有在本地安装浏览器,则可以指定selenium
服务器。For example, if you use SauceLabs and want to test on the iphone:
```
lettuce_utils --browser iphone --remote-url http://username:######AA-####-####-A#A#-#A###AAA####@ondemand.saucelabs.com:80/wd/hub
```
> Replace username with your SauceLabs account name and the password是您的访问密钥。还要注意,除了firefox和chrome之外,浏览器的驱动程序有时会出现不一致的行为。
地形源文件是您最好的信息源,但这里有一个莴苣实用程序的内置:
steps
---
*`browser`-分解成子模块。导入"browser"将获得所有信息。
*`alerts`-处理警报和提示。
*`browsers`-在浏览器之间切换。
*`elements`-验证元素是否存在,是否具有所需的内容或属性。
*`finders`-没有实际步骤-只是帮助函数来查找元素。
*`forms`-与表单域交互-键入、聚焦、选择、填写等。
*`javascript`-运行javascript并验证结果。
*`mouse`-单击、鼠标悬停、鼠标拖出、拖放。
*`navigation`-访问url、后退、前进、刷新。
*`page`-页面标题,url,完整的html。
*`common`-一些实用步骤,比如等待和环顾四周。
*`djangoify`-django关注的步骤,有助于url反转等。
*`everything`-浏览器,common和django。
terrans
--
*`common`-暂时没有。nt.
*`djangoify`-设置/删除django的测试数据库,包括安装了south的south迁移。
*`browser`-在"world.browser"设置浏览器。使用Firefox或
命令行选择的浏览器。
*`Everything`-包括以上所有内容。
step syntax
----
>内置步骤在语法上设计灵活,并实现Splinter支持的所有操作。一般来说,最好的办法就是简单地阅读步骤,看看支持什么。然而,对于"elements"、"forms"和"mouse"的部分,代码有点不透明,因此这里有一个更好的解释来说明这些部分是如何工作的:
通常,当您与表单、页面元素或鼠标交互时,可以将生菜的步骤看作是有一个主题和一个动作。r/>
subjects
--
具有"我的ID"的"我的ID"
<;action>;lt;lt;action>;lt;lt;element thing;field texarea单选按钮;具有css选择器".my css css选择器"
<;action>;具有css选择器".my css选择器"
<;action>;具有"我的css css选择器"的"我的css css选择器"的>;>;"
<;lt;action>复选框标签>;如果您只是在寻找一个链接,那么可以使用值"my value"
````
``gherkin
<;action>;指向"http://someurl.com"的链接
<;action>;指向包含"someurl.com"的url的链接那?)文本"some text"
<;action>;与包含"some t"
````
actions
----
的文本的链接第二部分是actions。要验证是否存在和内容,可以使用以下操作:
``小黄瓜
应该(不)请参见<;主题>;
应该(不)请参见<;主题>;包含"某些文本"
应该(不)请参见<;主题>;完全包含"some text"
应(不)查看<;subject>;具有名为"attr_name"的属性
应(不)查看<;subject>;具有名为"attr_name"的属性,值为"attr value"
应(不)查看页中任何位置的"some text"对于表单,您可以使用以下选项:
``小黄瓜
用"some text"
(慢慢地)在<;subject>;
将"some/file.name"附加到<;subject>;
从<;subject>;
中选择名为"option name"的选项使用<;subject>;
中的值"option_value"
将焦点放在<;subject>;
模糊的<;subject>;
查看<;subject>;的值是(不是)"some text"
````
要使用鼠标,您需要:
``gherkin
单击<;subject>;
将鼠标悬停在<;subject>;
将鼠标悬停在<;subject>;
双击<;subject>;
右键单击<;subject>;
拖动<;subject-1>;并将其放在<;subject-2>;
```
/>
``小黄瓜
如果我访问"http://www.my-test-site.com"
当我从名为"商店"的单选按钮中选择名为"cheese"的选项时,我单击包含"go"
文本的第一个链接,然后我将看到一个带有css选择器的元素。"cheese-shop-banner"
页面上任何地方都看不到"Meatco"。
```
firefox是默认的,但是使用另一个浏览器非常简单。要切换您使用的浏览器,只需键入:
``gherkin
如果我使用chrome
```
tips and tricks
==
与功能文件相同,附加了"-steps"。到目前为止效果很好。对于django应用程序,在应用程序结构中保留每个应用程序的功能也是最简单的。
如果您有建议,请在请求中键入,或打开问题!
使用chrome
----
否则,您可以在http://code.google.com/p/chromium/downloads/list找到您的操作系统:http://code.google.com/p/chromium/downloads/list
和地形,你们都准备好了。` manage.py harvest和所有的莴苣都应该正常工作。
*gotcha alert:*如果您正在为带有"staticfiles"的静态媒体提供服务,则需要将"-d"传递到harvest,以调试模式运行(并启用静态媒体)。
-----------------------------
黄瓜和生菜实用程序允许我们用自然的、人类语言编写测试,从而使bdd变得漂亮。请不要让生菜的内置驱动你的测试结果。如果它们使用的语法符合场景的需要,那么它们是为了方便起见。gherkin语法的一个重要优点是能够创建一个"然后我应该看到我已经登录"的场景。别失去那美丽!
这仍然有效,是一种选择Ion,但要使其正常工作,必须在
features文件夹中包含
`steps.py`文件,其中包含'from莴苣utils.steps.everything import*',以及
`terrans.py`文件,其中包含'from莴苣utils.steps.terrans import*'。
测试我们的项目,这是一个相当新的组件。因此,它将继续发展和改进。没有一个特定的开发图-任何能使编写bdd测试更简单、更快的东西都在表中。欢迎拉取请求!
*0.5(计划)*
*`沙拉主题词汇表'-允许对主题进行项目特定扩展。例如,您可以将"submit button"映射到带有css选择器的"the element"。submit"btn",并将其用于单击、鼠标悬停等操作,而无需为每个置换编写特定步骤。
生菜,它能正确地建立一个测试数据库。合并后将切换回干生菜!
*修复的django导入
*0.4.12*(及以上)
*针对mysql和其他dbs的db安装错误修复。现在一般都能用了!
*version bump
*0.4.8*
*0.4.7*
*travis ci集成
*0.4.6*
*fixedjango+postgressql支持。
*更多的关键测试。
*0.4.4.4.4*
*南部迁移现在基于南部迁移测试/>
*0.4.3*
*增加了iframe上下文切换的步骤。
*0.4.2*
*修复了取消提示代码
*澄清了属性regex以正确匹配。
*将js测试移动到本地文件(不需要Internet连接。)
*0.4.1*
*修复了为单个链接查找元素代码的错误。
*0.4*
*对包含的步骤进行大规模升级。现在有步骤几乎所有你可以做的分裂,友好的,一致的语法!
*为莴苣实用程序的所有步骤编写的功能。这是100%的测试覆盖率,伙计们!
*`browser`步骤现在是一个模块,按交互区域(窗体、鼠标等)组织。`导入步骤。browser仍将保持以前的行为。
*以后的证明:`I access the url`现在已被弃用,取而代之的是更友好的'I visit the url'。"访问"、"访问"和"打开"都是向前访问网页的有效操作。
*向后不兼容:`应该看到"某些文本"`已经改变了含义。
*如果您的意思是*此文本应该出现在该页的HTML中的某个位置*,则使用"应该看到"页面中的某个位置的"某些文本"。
*如果您的意思是*元素我将要描述的应该在页面中并且可见*,请使用"应该看到主题"`
*注意:向后不可比较的更改不会是这里的标准-目前,我非常确定我知道莴苣正在使用的所有地方,所以我宁愿跳一跳,把事情做好。未来向后不兼容的更改将经历一个弃用计划。
credits:
==
我们使用这个包的目的是让一切都变得非常简单,并运行一个甜蜜的bdd设置。
文件,