我有一個xUnit測試類似的問題。構造函數將爲每個測試實例化,並且RuntimeTypeModel已經具有代理類型並且失敗。該解決方案是使用ClassFixture中的xUnit(我相信這是對的TestFixture NUnit的?)
using System;
using System.Collections.Generic;
using System.IO;
using NodaTime;
using ProtoBuf.Meta;
using Quantum.Serialisation;
using Quantum.Serialisation.Surrogates;
using Xunit;
namespace Quantum.SerialisationTests
{
public class TestFixture : IDisposable
{
private RuntimeTypeModel model;
public TestFixture()
{
RuntimeTypeModel.Create();
model = RuntimeTypeModel.Default;
model.Add(typeof (ZonedDateTimeSurrogate), true);
model.Add(typeof (ZonedDateTime), false).SetSurrogate(typeof (ZonedDateTimeSurrogate));
}
public void Dispose()
{
}
}
public class ProtobufTests : IClassFixture<TestFixture>
{
public ProtobufTests()
{
}
// Tests go here
public void SetFixture(TestFixture data)
{
}
}
}
不管你有多少測試必須在ProtobufTests規範代孕只會被添加一次。
你有沒有設法找到一種方法來做到這一點?我還發現,一旦您將類型註冊爲代理,您不能重新添加它們;例如在單元測試類的情況下。 – cmdel