代码之家  ›  专栏  ›  技术社区  ›  fgalan

使用behave标记仅执行此类标记的子类

  •  1
  • fgalan  · 技术社区  · 9 年前

    我在一个 sample.feature 文件,场景中有两个子案例,使用 Examples 语法:

      @ninja
      Scenario Outline: this is a sample scenario
        Given ...
        And ...
        And ..
        When ...
        Then ...
    
        Examples:
          | param1 | param2 | param3 |
          |     10 |      4 |      9 | 
          |     20 |      8 |     23 |
    

    我可以用标签 ninja 仅执行该场景 示例.feature

    $ behave sample.feature --tags=ninja
    ...
    Scenario Outline: this is a sample scenario -- @1.1
    ...
    Scenario Outline: this is a sample scenario -- @1.2
    ...
    

    注意,行为“标记”了每个子用例的执行,即。 @1.1 @1.2

    我想知道我是否可以更“敏锐”,使用behave只执行给定标记的一个子类(或子集)。我尝试了以下方法,但没有成功(即两个子类都是执行的,而不仅仅是第二个子类):

    $ behave sample.feature --tags=ninja,1.2
    

    这可能吗?有什么帮助吗?

    1 回复  |  直到 9 年前
        1
  •  1
  •   pepe pepito    9 年前

    是的,可以在场景大纲中只执行一行(示例),首先需要在特征文件中定义标记中的占位符,例如:
    @test.row<row.id> Reference in Behave

    之后,执行:

    以身作则。特征-t @test.row1.2 --仅运行带有此标记的行:2。

    此外,还可以创建几个示例,例如:

        Examples:
          | param1 | param2 | param3 |
          |     10 |      4 |      9 | 
          |     20 |      8 |     23 |
        Examples:
          | param1 | param2 | param3 |
          |     30 |     12 |      1 | 
          |     40 |     13 |     45 |
          |     50 |     14 |     49 | 
          |     60 |     15 |     13 |
    

    以身作则。特征-t @test.row2.4 --使用以下标记仅运行第二个示例中的行:4:

          |     60 |     15 |     13 |