我正在尝试序列化/反序列化一个唯一类型作为 xunit c# 测试的一部分。该类型是 List > _testCases = new();GraphicTestCase 如下所示:
我正在尝试序列化/反序列化一个唯一类型作为 xunit c# 测试的一部分。该类型是
List<GraphicTestCase<TPage>> _testCases = new();
GraphicTestCase 如下所示:
public interface IGraphicTestCase
{
string Name { get; set; }
IWebElement Execute();
}
public abstract class GraphicTestBase<TPage,TReturn> where TPage : BasePage
{
private readonly Func<TPage> _pageFactory;
public GraphicTestBase(Func<TPage> pageFactory)
{
_pageFactory = pageFactory;
}
public string Name { get; set; }
public Func<TPage, TReturn> Action { get; set; }
public TReturn Execute()
{
TPage page = _pageFactory();
return Action(page);
}
}
public class GraphicTestCase<TPage> : GraphicTestBase<TPage, IWebElement> , IGraphicTestCase where TPage : BasePage
{
public GraphicTestCase(Func<TPage> pageFactory) : base(pageFactory)
{
}
}
这是我当前的序列化/反序列化
public void Serialize(IXunitSerializationInfo info)
{
JsonSerializerSettings settings = new()
{
TypeNameHandling = TypeNameHandling.All,
ContractResolver = new DefaultContractResolver
{
IgnoreSerializableInterface = false,
IgnoreSerializableAttribute = false,
},
Formatting = Formatting.Indented,
};
string json = JsonConvert.SerializeObject(_testCases, settings);
// Add serialized data to the serialization info
info.AddValue("TestCases", json);
}
public void Deserialize(IXunitSerializationInfo info)
{
string json = info.GetValue<string>("TestCases");
JsonSerializerSettings settings = new()
{
TypeNameHandling = TypeNameHandling.All,
ContractResolver = new DefaultContractResolver
{
IgnoreSerializableInterface = false,
IgnoreSerializableAttribute = false
},
Formatting = Formatting.Indented
};
var cases = JsonConvert.DeserializeObject<List<GraphicTestCase<TPage>>>(json, settings);
_testCases.Clear();
foreach (var testCase in cases)
{
_testCases.Add(testCase);
}
}
}
尝试序列化/反序列化这些值会阻止我的测试在测试资源管理器中被发现,因此故障排除非常困难。
Xunit 序列化/反序列化自定义类型
下载声明:
本站所有软件和资料均为软件作者提供或网友推荐发布而来,仅供学习和研究使用,不得用于任何商业用途。如本站不慎侵犯你的版权请联系我,我将及时处理,并撤下相关内容!