zoukankan      html  css  js  c++  java
  • 基于python的测试框架behave----context

    使用behave时,每一步对应的方法都需要参数context,那么context是什么,为什么都需要传这个对象?

    在所有用例中的context都是behave.runner.Context类的一个实例
    关于behave.runner.Context(runner)类
    这个类用来存放用例运行期间的上下文信息,你可以添加带有任意值的任意属性到这个对象。
    在你的用例运行期间这个对象会自动添加和删除额外的命名空间层。有一个“根”命名空间,其他的命名空间供features和scenarios使用。


    有一些属性名已经被behave占用,所以为了你设置的值不被覆盖掉最好不要在context对象上添加下列属性名:
    1.feature
      在开始测试一个新的feature时添加,是Feature的一个实例。在feature外访问不到该属性(比如environment中的before_all和after_all方法中)。
    2.scenario
      这是在开始测试一个新的scenario时添加(包括scenario outline对应的每一个独立的scenario),是Scenario类的一个实例。只在scenario范围内可以被访问到。
    3.tags
      当前活跃的(active,翻译)tags集合, 是feature和scenario两者的tag集合。在feature范围内可访问。
    4.aborted
      这个属性在“根”命名空间中设置,在用户中断一个正在跑的测试时被设为True(键盘产生的中断除外), 初始值是False。也可以通过把这个值设为True来产生一个用户中断
    5.failed(todo 不知道有什么意义)
      这个属性在“根”命名空间中设置,当一个step失败时被设置为True.初始值是False
    6.table
      这个是step级别的设置,例如:
      Given set init info
      | name | score |
      | tom | 20 |
      | janey | 30 |
      context.table就可以获取到 Given行下表的内容
    7.text
      这个也是step级别的设置,用来存放跟当前step相关的多行文本, 例如:
      Give set init info
      '''
      set student name in the name col
      set score in the score col
      '''
      context.text = '''xxxxxxx'''中间的文本内容

  • 相关阅读:
    Codeforces 977F
    Codeforces 219C
    Codeforces 1132
    Codeforces 660C
    Codeforces 603A
    Codeforces 777C
    Codeforces 677
    JNUOJ 1032
    Codeforces 677D
    Codeforces 835C
  • 原文地址:https://www.cnblogs.com/janey/p/5601316.html
Copyright © 2011-2022 走看看