在test program docs中,我看到此代码位,表明将有一些默认选项传递给子流。
# These are the option defaults that will be used unless specified by the caller
options = {
include_loaded_output_tests: true,
index: 0,
}.merge(options)
但是当我在子流中设置断点时,我看到的只是一个空哈希。如果我在子流中传递了一些选项,则会显示它们:
# In top-level flow
import 'scan_coverage_flow', test_modes: test_modes
# In the sub-flow
From: /users/user/origen/prod/scan/origen/_scan_coverage_flow.rb @ line 3 :
1: Flow.create do |options|
2: binding.pry
[1] pry(#<AmdTest::Interface>)> options
=> {:test_modes=>
{"mode1"=><Model: Origen::SubBlock:23972990241220>,
文档是最新的还是误读了?
thx
答案 0 :(得分:1)
您误读了文档,它旨在显示如何设置特定于子流的默认选项。
说我们有一个空的子流程,只打印出选项:
# _my_sub_flow.rb
Flow.create do |options|
puts options
end
这样调用应该会打印出一个空哈希值:
import "my_sub_flow"
# => {}
如果您添加一些默认选项:
Flow.create do |options|
options = { a: 10,
b: 20
}.merge(options)
puts options
end
然后它将按照您的期望进行操作:
import "my_sub_flow"
# => {a: 10, b: 20}
当然,拥有选项的原因是您可以在通话时覆盖它们:
import "my_sub_flow", b: 50
# => {a: 10, b: 50}