- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试使用行为框架、python 通过 BDD 测试来覆盖项目。问题是所有 BDD Material 都使用不真实的玩具示例。我的项目相当大,我遇到了以下问题
最佳答案
所以你有两个问题,我会尝试解决这两个问题:
在许多功能文件中使用相同的逐字 Given
/When
/Then
是没问题的;重要的是如何在步骤定义中实现它们。我会考虑走两条路:(1)利用behavior的step parameters ; (2) 使用步骤的 context
对象来指定您正在运行的功能文件或场景。关于 (2),考虑设置如下场景:
Feature: Buying toys
@checkout_page
Scenario: Proceed to checkout page
Given Toys are in the shopping cart
When I enter code and click submit button <--- Same step
Then the items will be checked out
@purchase_page
Scenario: Proceed to purchase page
Given Toys are in the shopping cart
When I enter code and click submit button <--- Same step
Then the items will be purchased
从这里,您可以使用行为的 context
对象来存储标记并在步骤实现中使用它:
在环境.py中:
def before_scenario(context, scenario):
context.current_scenario_tags = scenario.tags # This is a list
# ... other stuff maybe
分步实现:
@When("I enter code and click submit button")
def step_impl(context):
# Assuming that the logic to enter the code and set up the clicking action
# is identical in most regards, you should pull it out of the following for loop
# and place it here. This may help shorten your step implementations.
# vvvvvvvvvvvvvvvvvvvvv
# HERE
# ^^^^^^^^^^^^^^^^^^^^^
for tag in context.current_scenario_tags:
if tag == "checkout_page":
# Then handle the checkout_page scenario
break
elif tag == "purchase_page":
# Then handle the purchase_page scenario
break
*根据您已经使用的标签,您可能只想执行 break
语句,而不是循环遍历其余标签,假设您已经知道要使用的特定标签正在寻找。
这并不能解决您的步骤实现长达 400 行的问题,但俗话说,“鱼与熊掌不可兼得”。
上面已经解决了这个问题,但以下是文档中有关行为及其如何搜索功能文件和步骤文件的一些内容:
behave works with three types of files:
- feature files written by your Business Analyst / Sponsor / whoever with your behaviour scenarios in it, and
- a “steps” directory with Python step implementations for the scenarios.
- optionally some environmental controls (code to run before and after steps, scenarios, features or the whole shooting match).
因此需要一个 feature/
目录,以及一个 feature/steps/
子目录。答案是否定的,behavior 不允许您在 feature/steps/
目录中创建分类文件夹或子目录。请记住,在查找与功能文件中的步骤关联的步骤实现时,behaviour 会搜索 feature/steps/
目录中的所有 Python 文件,但不会递归到该目录的子目录中。拥有良好的命名约定肯定会大有帮助!
关于python - 行为: how to organize files of this framework in not-toy project,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51954996/
有一个 Person 类,它包含以下内容: 智力玩具 列出 child SumToys() SumToys() 返回直接对象中的所有“玩具”(调用 SumToys)及其直接子对象(不是子对象的子对象)
*Pastebin 的完整日志:* http://pastebin.com/QJyzzxNA 每当我尝试编译The Powder Toy时,它给了我一个链接器错误,说该库与 x86_64 不兼容。我该
基本上我正在制作一款类似于 The Powder Toy 的游戏。在一个给定的帧中,世界最多可以有 256,000 个粒子。在我旧的 Javascript 实现中,我遍历了每个像素,这导致了严重的延迟
我想按两个FromX和ToY字段的值构成的范围内的指定值进行查询,并通过Title查询将text作为query_string字段进行搜索。 这个例子显示了我的目标: Id | FromX | ToY
想象这样的谜题: puzzle 我有几种形状,例如: 10圈 8个三角形 9个正方形 我也有一些盘子用来放形状,例如: A板:2个圆孔,3个三角孔,1个方孔 B板:1个圆孔,0个三角孔,3个方孔 C板
我正在尝试使用行为框架、python 通过 BDD 测试来覆盖项目。问题是所有 BDD Material 都使用不真实的玩具示例。我的项目相当大,我遇到了以下问题 在不同的 .feature 文件中,
这是我正在开发的一个非常简单的模块。它只是将 sys_ni_syscall 替换为我的新系统调用 log_message。这里是源文件template_syscall_hacking.c: #incl
在 Redux+Immutable js 新手中,我发现 toJS 方法存在一些性能问题,但在我的用例中我找不到任何替代方案。那么如何将列表转换为对象数组。 我的初始状态 const initialS
已结束。此问题不符合 Stack Overflow guidelines .它目前不接受答案。 要求我们推荐或查找工具、库或最喜欢的场外资源的问题对于 Stack Overflow 来说是无关紧要的,
请考虑以下简单的MWE:。最佳解决方案是使所有参数相等,而不是介于4和6之间。例如,全部为3。这给出的函数值为0。对于不同的Scipy优化器,优化的成功程度各不相同,但使用DIRECT几乎立即失败。它
请考虑以下简单的MWE:。最佳解决方案是使所有参数相等,而不是介于4和6之间。例如,全部为3。这给出的函数值为0。对于不同的Scipy优化器,优化的成功程度各不相同,但使用DIRECT几乎立即失败。它
我正在使用 exec() 语句来设置一个值,如下所示: foo = 3 def return_4(): return 4 instruction = 'foo = return_4()' ex
我是一名优秀的程序员,十分优秀!