常用的黄瓜标签是什么? “如何”/“以何种方式”我“可以”/“应该”使用那些?

时间:2012-03-20 03:38:16

标签: ruby-on-rails ruby tags cucumber agile

我使用Ruby on Rails 3.2.2和Cucumber使用cucumber-rails gem。我想知道整个应用程序中常用的黄瓜标签,或者至少我应该考虑的标准,以使标签“高效”/“有用”。更多,我想知道“如何”/“在哪些方面”我“可以”/“应该”使用黄瓜标签。

1 个答案:

答案 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 - 表示测试需要在登录用户的上下文中运行,这有时用标签表达是有意义的,尽管背景部分会更常用

此外,标签仅可用于提供信息。我已经看到团队使用相关的问题编号,作者,开发人员等标记测试,其中许多可能很有用(但其中许多重复信息很容易在源代码管理中找到,所以我要小心)