我有许多要测试的应用程序,它们具有大量重叠的功能集。这是我可能遇到的场景的过度简化示例:
Given <name> is playing a game,
When they shoot at a <color> target
Then they should <event>
Examples:
| name | color | event |
| Alice | red | hit |
| Alice | blue | miss |
| Bob | red | miss |
| Bob | blue | hit |
| Bob | green | hit |
这是一个愚蠢的例子,但假设我真的有很多具有不同命中/未命中条件的玩家,我只想运行给定名称的场景?说,我只想为Alice
. 在单个场景大纲中包含所有命中/未命中测试仍然有优势(因为毕竟它们都是密切相关的)。
一种方法是为每个名称复制测试并标记它们,例如:
@Alice
Given Alice is playing a game
When she shoots at a <color> target
Then she should <event>
Examples:
| color | event |
| red | hit |
| blue | miss |
这样我可以运行behave --tags @Alice
,但是我为每个用户重复相同的场景,这是很多重复。有没有一种好方法可以将所有示例压缩到一个场景中 - 但只能选择性地运行其中一些示例?这里的正确方法是什么?