0

我正在寻找一个回调后测试执行来检查警报标志。我在这里没有看到任何列表,所以我检查了测试界面,只看到了看起来像流级别回调的内容:

# This will be called at the end of every flow or sub-flow (at the end of every
# Flow.create block).
# Any options passed to Flow.create will be passed in here.
# The options will contain top_level: true, whenever this is called at the end of a
# top-level flow file.
def shutdown(options = {})
end

我们需要能够在每次测试后检查警报标志,但仍将公共组 ID 应用于测试列表,如下所示:

group "func tests", id: :func do
  [:minvdd, :maxvdd].each do |cond|
    func :bin1_1200, ip: :cpu, testmode: :speed, cond: cond
  end
end

以下是 V93K 警报流标志的示例:

在此处输入图像描述

谢谢!

4

1 回答 1

1

编写接口以通过一个通用的单一方法将所有测试生成方法汇集到流中是很常见的:

def func(name, options = {})
  t = test_suites.add(name)
  t.test_method = test_methods.origen.functional_test(options)
  add_to_flow(t, options)
end

def para(name, options = {})
  t = test_suites.add(name)
  t.test_method = test_methods.origen.parametric_test(options)
  add_to_flow(t, options)
end

def add_to_flow(test_obj, options = {})
  # Here you can do anything you want before adding each test to the flow
  flow.test(test_obj, options)
  # Here you can do anything you want after adding each test to the flow
end

因此,虽然没有针对每个测试的回调,但您通常可以通过上述接口架构实现您想做的任何事情。

编辑:

参考您要创建的警报标志流结构,您可以这样编码:

func :some_func_test, id: :sft1

if_failed :sft1 do
  bin 10, if_flag: "Alarm"
  bin 11, unless_flag: "Alarm"
end

或者,如果您愿意,这是等效的:

func :some_func_test, id: :sft1

bin 10, if_flag: "Alarm", if_failed: :sft1
bin 11, unless_flag: "Alarm", if_failed: :sft1

在撰写本文时,这将产生一些逻辑上正确但具有次优分支结构的东西。在将要修复的下一个版本中,请参阅此处添加的测试用例及其生成的输出

您可以从接口调用所有流控制方法,就像在流中一样,因此您可以根据add_to_flow需要在方法中注入这些条件。

还要注意,在测试用例中都使用了if_flagif_enableif_enable如果标志将在流程开始时设置(例如由操作员)并且不会更改,则通常应使用该标志。if_flag如果它是在运行时由流修改的标志,则应使用它。

于 2017-09-11T15:54:32.570 回答