2017-09-06 7 views
1

この中でinstructional videoテストがサブフローで定義されている場合は、テスト名に文字列が追加されています。これは必須ですか?私のチームはこの機能の理由を理解していますが、まだ愛されていません。おそらく厳密な監査を実施するだけのオプションがあり、衝突があればサブフローを作成しないでしょうか?サブフロー内のテスト名に追加された固有のテスト文字列は必須ですか?

答えて

1

これらの文字列の目的は、Origenで生成されたフローモジュールがトップレベルのテストプログラムフローに挿入されたときに、Origenから発生したかどうかにかかわらず、名前の衝突がないことを保証することです。

あなたががその機能をオフにしたい場合は、次のことができるようにする必要があり、このAPIが動作するはずです:私は、

Flow.create unique_ids: false do 

end 

しかし、バグがあるようだと、これは何もしませんここでは、このために問題を開いた:、私たちはAPIへのより多くの機能を追加すべきだと思うの固定の過程でhttps://github.com/Origen-SDK/origen_testers/issues/49

、これは提案されているものです。

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 

フロー毎APIの制御を提供することに加えて、例えば、それは全てのフローに適用される、または論理を介して可能にすることができるように、インターフェースレベルでそれを設定することが可能であろう。所与

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

任意:unique_ids属性Flow.createは、インターフェイスに設定された値を上書きします。私は、メソッドの再定義を使用してアプリケーション・レベルでの前にハッキングしてきました

+0

おかげGintyは、私はgithubのスレッドに議論を移動しました。 –

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 
+0

私たちが正式なAPIを入手するまでは良い解決策です – Ginty

+0

しかし、このブルートフォースアプローチの欠点は、フローコントロールAPIからの生成された変数名に固有の署名が含まれないようにすることです。名前の衝突(テスト名からのように)でSMTからエラーが出ることはなく、未定義/意図しないフローの振る舞いが悪い可能性があるので、これを意図的に行うことは決して少ないと思います。 – Ginty

関連する問題