1

我在我的测试接口中添加了一个质量检查,它将传递的测试方法参数与测试方法库中定义的有效参数进行比较。我发现了一些可以返回有效参数的代码,但它具有破坏性,因为它将空的测试方法插入到流程中。

valid_params = test_methods.v93k.send(test_method_params[:test_method]).instance_variables.grep(/^\@[A-Z]/).map { |p| p.to_s.delete('@').to_sym }

有没有办法简单地查询测试方法库以获取特定测试方法的有效测试方法参数?我看了看这里,但什么也没看到。

谢谢

4

2 回答 2

1

这里介绍了创建V93K测试方法库,答案是查询测试方法库本身,而不是上面的方法。

# 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 }

此代码产生相同的信息,并且不会创建空参数集。

谢谢

于 2018-05-30T12:50:55.003 回答
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"]}
于 2018-05-30T12:52:37.690 回答