Я начинаю писать unit test (MS Test, с Resharper как тестовый бегун). Когда я устанавливаю LogicalThreadContext (см. Ниже), мои тестовые примеры "прерываются". Кто-нибудь знает, почему? Связано ли это с unit test на другом потоке? Как это разрешить?
[TestClass]
public class ContextInfoTest
{
private ILog _log;
[TestInitialize]
public void TestInitialize()
{
// logging configured in assembly.info
_log = LogManager.GetLogger(this.GetType());
}
[TestMethod]
public void FigureOutWhyAborting()
{
string input = "blah";
LogicalThreadContext.Properties["mypropertyname"] = input;
string output = LogicalThreadContext.Properties["mypropertyname"] as string;
Assert.AreEqual(input, output);
}
[TestMethod]
public void ThisWorks()
{
string input = "blah";
CallContext.LogicalSetData("mypropertyname", input);
string output = CallContext.LogicalGetData("mypropertyname") as string;
Assert.AreEqual(input, output);
}
Странно то, что если бы я должен был отлаживать и переходить через код, Assert.AreEqual действительно вызывается и проходит, так что что-то происходит после этой строки кода... вот почему я думаю, что это может иметь что-то с тестовой нитью и т.д.
Спасибо!
UPDATE: Поэтому я проверил этот тест в MSTest и получил это исключение (Resharper не показывал его)
Unit Test Адаптер сбросил исключение: Тип не разрешен для члена log4net.Util.PropertiesDictionary, log4net, Version = 1.2.13.0, Culture = neutral, PublicKeyToken = 669e0ddf0bb1aa2a '..
Я использую log4net v1.2.13, на VS2013,.Net 4.5.
Эта ссылка, похоже, предполагает, что это проблема с сборками, но разрешения нет. Любые дополнительные идеи будут очень приветствуемы, GAC'ing log4net не является вариантом. https://issues.apache.org/jira/browse/LOG4NET-398