我有一个具有不同场景的功能文件。为每个功能文件添加多个标签是个好主意吗?
library(tidyverse)
list1 = list("16403074 L3 2", "16603059 L3 2")
list2 = list("0 1", "0 1")
list3 = list("1.7 0.75514 -1.62403 0.06183" ,"1.7 0.42851 0.52817 0.08137")
data <- tibble(strings = c(list1, list2, list3))
data %>%
unnest()
我将能够一次在命令行中使用一个或多个标签来执行测试吗?
答案 0 :(得分:1)
是的,在功能文件中包含多个标签是常见的用例。您可以使用标签对测试进行分类。不必一次运行多个标签/类别,而是可以通过将标签放置在正确的位置来构建功能文件,以运行所需的所有测试。
这里有两个例子:
Feature: Buy the product
The product can be bought.
Scenario Outline: A customer buys the product
Given product <Product>
And payment method <PaymentMethod>
When customer clicks buy
Then product ends up in basket
@ci @daily @weekly
Examples:
| Product | PaymentMethod |
| Book | Cash |
@daily @weekly
Examples:
| Product | PaymentMethod |
| Software | Visa |
| Music | MasterCard |
@weekly
Examples:
| Product | PaymentMethod |
| Watch | DinersClub |
| Hitman | BitCoin |
我现在可以设置我的CI / CD工具来运行
dotnet test --filter TestCategory=ci
每次有人提交。我可以安排这个时间
dotnet test --filter TestCategory=daily
每天运行一次。最后,我可以将其设置为每周运行:
dotnet test --filter TestCategory=weekly
请注意,每日类别也将运行ci测试,而每周类别将运行所有测试,因为标签也在那里。因此,ci考试是一项肤浅但快速的测试,而每周一次是最彻底的测试,因为它可以运行所有方案。
Feature: Start and stop engine
The engine has a start/stop mechanism that can be triggered by software.
@req123 @req124
Scenario: Start engine
Given engine is stopped
When operator clicks on start button
Then engine starts
@req123 @req124
Scenario: Stop engine
Given engine is started
When operator clicks on stop button
Then engine starts
@req123
Scenario: Start engine
Given engine is stopped
When operator clicks on stop button
Then nothing happens
如果我们想证明要求123,我们将运行:
dotnet test --filter TestCategory=req123
所有方案都将运行。如果我们想证明要求124,我们将运行
dotnet test --filter TestCategory=req124
第两个方案将运行。最后一个将被跳过,因为它没有被req124标记。