using OpenTap;
|
using OpenTap.Addin;
|
using OpenTap.Addin.Annotation;
|
using System.Collections.Concurrent;
|
using System.Collections.ObjectModel;
|
using System.Xml.Serialization;
|
|
namespace AddInPlugin
|
{
|
[AllowAnyChild]
|
public class ContextStep : TestStep
|
{
|
|
private ObservableCollection<TestVariable> variables = new ObservableCollection<TestVariable>();
|
[Display("参数")]
|
[TreeData]
|
public ObservableCollection<TestVariable> Variables
|
{
|
get => variables;
|
set
|
{
|
variables = value;
|
OnPropertyChanged(nameof(Variables));
|
}
|
}
|
|
[XmlIgnore]
|
private VariableContext variableContext;
|
|
public override void PrePlanRun()
|
{
|
ConcurrentDictionary<string, RuntimeVariable> runtimeVariablePool = new ConcurrentDictionary<string, RuntimeVariable>();
|
foreach (var data in Variables)
|
{
|
RuntimeVariable runTime = data.ToRuntime();
|
if (runTime == null) continue;
|
runtimeVariablePool[runTime.Name] = runTime;
|
}
|
variableContext = new VariableContext(runtimeVariablePool);
|
}
|
|
public VariableContext GetContextVariables()
|
{
|
return variableContext;
|
}
|
|
public override void Run()
|
{
|
RunChildSteps();
|
}
|
}
|
}
|