是否必须在子流中附加到测试名称的唯一测试字符串?

时间:2017-09-06 17:05:55

标签: origen-sdk

在这个instructional video中,当在子流中定义测试时,我看到附加到测试名称的字符串。这是强制性的吗?我的团队了解此功能的原因但仍未被喜爱。也许可以选择只执行严格的审计,如果发生冲突则不创建子流程?

2 个答案:

答案 0 :(得分:1)

这些字符串的目的是保证当Origen生成的流模块与其他可能来自Origen的测试一起插入顶级测试程序流时没有命名冲突。

如果您想关闭该功能,那么您应该能够,并且此API应该可以正常工作:

Flow.create unique_ids: false do

end

然而,似乎有一个错误,这没有任何作用,我在这里打开了一个问题:https://github.com/Origen-SDK/origen_testers/issues/49

在修复过程中,我认为我们应该为API添加更多功能,这就是建议:

unique_ids: :signature   # Append a calculated signature (default, current behavior)

unique_ids: false    # Append no unique ID
unique_ids: nil      # Append no unique ID

unique_ids: :flow_name   # Append the current top-level flow name
unique_ids: :flowname    # Append the current top-level flow name

unique_ids: :blah    # Any other string or symbol value will be appended directly
unique_ids: "blah"   # Any other string or symbol value will be appended directly

除了提供per-flow API控件之外,还可以在接口级别设置它,因此它可以应用于所有流程,或通过逻辑启用,例如:

# lib/my_interface.rb
def startup(options = {})
  self.unique_ids = :flowname
end

赋予:unique_ids的任何Flow.create属性都将覆盖界面上设置的值。

答案 1 :(得分:1)

我之前在应用程序级别使用方法重新定义进行了攻击:

# Some .rb file in your application
require "#{Origen.app(:origen_testers).root}/lib/origen_testers/flow"
module OrigenTesters
  module Flow 
    def sig
      nil
    end
    alias_method :signature, :sig
  end
end