我使用Ruby on Rails 3.2.2和Cucumber使用cucumber-rails gem。我想知道整个应用程序中常用的黄瓜标签,或者至少我应该考虑的标准,以使标签“高效”/“有用”。更多,我想知道“如何”/“在哪些方面”我“可以”/“应该”使用黄瓜标签。
答案 0 :(得分:0)
标签最常用于从运行中选择或排除某些测试。您的特定情况将决定哪些“组”测试对于特定测试运行运行或不运行是有用的,但是一些常见示例可能是:
@slow
- 表示需要很长时间才能运行的测试,您可能希望将其从大多数测试运行中排除,并且只在隔夜构建中运行它,以便开发人员不必每次都等待它时间。@wip
- 表示此测试执行未完成的功能,因此在功能处于开发阶段时会出现故障(当它完成时,@wip
标记将被删除)。这在Cucumber中具有特殊意义,因为如果任何@wip
测试实际通过,它将返回非零退出代码@release_x
,@sprint_y
,@version_z
等许多团队使用有关哪个版本/ sprint /版本包含它的信息标记每个测试,以便他们可以在期间运行最小的测试套件发展。通常与@wip
标记相同,只是它们保持与测试的连接,因此它们始终知道何时引入了特定功能。@payments
,@search
,@seo
等。基本上是您的要素文件组织尚未表达的任何逻辑分组测试。通常在测试涉及横切关注点时,或者将项目划分为与特征文件不同的行的组件时使用。标签也用于触发钩子 - 可以在使用特定标签的测试之前,之后或“周围”运行的代码。一些例子是:
@javascript
- 表示测试需要Javascript支持,因此钩子可以从仅HTTP驱动程序切换到具有JS支持的驱动程序。 Capybara更进一步,自动切换到以标签命名的驱动程序(如果找到一个(因此您可以使用例如@desktop
,@mobile
,@tablet
驱动程序)@logged_in
- 表示测试需要在登录用户的上下文中运行,这有时用标签表达是有意义的,尽管背景部分会更常用此外,标签仅可用于提供信息。我已经看到团队使用相关的问题编号,作者,开发人员等标记测试,其中许多可能很有用(但其中许多重复信息很容易在源代码管理中找到,所以我要小心)