多参数集继承

时间:2019-09-03 20:39:22

标签: origen-sdk

当前是否有一种从多个参数集继承的方法?

我有一个用例,我有一组测试,它们都共享一组默认值,然后其中一半测试共享另一组默认值,另一半共享另一组默认值。

到目前为止,我的解决方法是:

  define_params :A_default do |p|
    params(:default)[:tm].each { |id, val| p.tm.send("#{id}=", val) }
    params(:A)[:tm].each { |id, val| p.tm.send("#{id}=", val) }
  end

  define_params :B_default do |p|
    params(:default)[:tm].each { |id, val| p.tm.send("#{id}=", val) }
    params(:B)[:tm].each { |id, val| p.tm.send("#{id}=", val) }
  end

然后我的测试根据测试使用inherit: :A_defaultinherit: :B_default

我认为,理想的情况是,如果当前没有多个父参数集,则可以使用一种api,并使用某种方法来指示优先级顺序(即,如果A和B父母发生冲突,谁的值将被继承)。 / p>

编辑: 忘记提及还有一些测试也继承A或B,因此使用其特定参数定义A_default或B_default,然后继承default仍然需要我多次定义一些参数。

1 个答案:

答案 0 :(得分:1)

不支持多重继承,因此任何答案都是您现有解决方案的编码变体。

但是,由于我似乎添加了一项有用的功能,因此请参见-https://github.com/Origen-SDK/origen/pull/357