Используя проект VS2017 MVC Web Api, у меня есть несколько модульных тестов, которые проходят хорошо при индивидуальной работе, но при параллельной работе я получаю следующую ошибку.Я хотел бы знать, как можно запустить эти тесты параллельно.
System.Reflection.ReflectionTypeLoadException
HResult = 0x80131602
Сообщение = Невозможно загрузить один или несколько иззапрашиваемые типы.Получите свойство LoaderExceptions для получения дополнительной информации.
Не удалось загрузить файл или сборку 'Newtonsoft.Json, Версия = 6.0.0.0, Культура = нейтральный, PublicKeyToken = 30ad4fe6b2a6aeed' или одна из его зависимостей.Определение манифеста обнаруженной сборки не соответствует ссылке на сборку.(Исключение из HRESULT: 0x80131040) ":" Newtonsoft.Json, версия = 6.0.0.0, культура = нейтральная, PublicKeyToken = 30ad4fe6b2a6aeed
Код, где возникает исключение, приведен ниже в s.GetTypes ():
using Newtonsoft.Json.Linq;
public static class Factory
{
private static IEnumerable<MyAbstractClass> GetObjects(JObject parsedJson)
{
var list = new List<MyAbstractClass>();
var type = typeof(MyAbstractClass);
AppDomain.CurrentDomain.GetAssemblies()
.SelectMany(s => s.GetTypes())
.Where(p => type.IsAssignableFrom(p) && p.IsClass && !p.IsAbstract)
.ToList()
.ForEach(t =>
{
var item = (MyAbstractClass)Activator.CreateInstance(t);
if (item.CanProcess(parsedJson)) list.Add(item);
});
return list;
}
}
В проекте упоминается версия 11.0.0.0 Newtonsoft.Json (поэтому я не уверен, почему она требует версии 6.0.0.0).
Я гарантировал, чтоweb.config имеет:
<dependentAssembly>
<assemblyIdentity name="Newtonsoft.Json" culture="neutral" publicKeyToken="30ad4fe6b2a6aeed" />
<bindingRedirect oldVersion="0.0.0.0-11.0.0.0" newVersion="11.0.0.0" />
</dependentAssembly>
Во время параллельного запуска один тест (предположительно тот, который запускается первым) проходит успешно, а все остальные завершаются неудачно с идентичным исключением.