我在我的测试界面中添加了一个质量检查,用于比较传递给测试方法库中定义的有效参数的测试方法参数。我找到了一些可以返回有效参数的代码,但它具有破坏性,因为它将空的测试方法插入到流中。
valid_params = test_methods.v93k.send(test_method_params[:test_method]).instance_variables.grep(/^\@[A-Z]/).map { |p| p.to_s.delete('@').to_sym }
有没有办法简单地在测试方法库中查询特定测试方法的有效测试方法参数?我查看了here,但没有看到任何内容。
THX
答案 0 :(得分:1)
创建V93K测试方法库here,答案是查询测试方法库本身,而不是上面的方法。
# Given that the test method library is the variable tml
valid_params = tml.definition[test_method_params[:test_method].to_sym].ids.reject { |p| p.is_a? Symbol }
此代码生成相同的信息,不会创建空参数集。
THX
答案 1 :(得分:1)
其他平台上的YMMV,但对于V93K,您可以调用test_methods.<library>.definitions
返回一个哈希,其中包含由此类库定义提供的所有信息 - http://origen-sdk.org/origen/guides/program/v93k/#Custom_Test_Methods
内置库的定义方式相同,所以这里有一个例子:
(byebug) test_methods.dc_tml.definitions[:general_pmu]
{:class_name=>"GeneralPMU", :pinlist=>[:string, "@"], :force_mode=>[:string, "VOLT", ["VOLT", "CURR"]], :force_value=>[:force_mode, 3.8], :spmu_clamp=>[:force_modeb, 0], :precharge=>[:string, "OFF", ["ON", "OFF"]], :precharge_voltage=>[:voltage, 0], :settling_time=>[:time, 0], :tester_state=>[:string, "CONNECTED", ["CONNECTED", "DISCONNECTED", "UNCHANGED"]], :termination=>[:string, "OFF", ["ON", "OFF"]], :measure_mode=>[:string, "PPMUpar", ["PPMUpar", "PPMUser", "SPMUser"]], :relay_switch_mode=>[:string, "DEFAULT(BBM)", ["DEFAULT(BBM)", "BBM", "MBB", "PARALLEL"]], :ppmu_clamp_low=>[:voltage, 0], :ppmu_clamp_high=>[:voltage, 0], :output=>[:string, "None", ["None", "ReportUI", "ShowFailOnly"]], :test_name=>[:string, "passLimit_uA_mV"]}