Using VS2017 MVC Web Api project, I have some unit tests which pass fine when run individually, but when run in parallel, I get the below error. I'd like to know how to be able to run these tests in parallel.
System.Reflection.ReflectionTypeLoadException
HResult=0x80131602
Message=Unable to load one or more of the requested types. Retrieve the LoaderExceptions property for more information.Could not load file or assembly 'Newtonsoft.Json, Version=6.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)":"Newtonsoft.Json, Version=6.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed
The code where the exception occurs is below at 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;
}
}
I have Newtonsoft.Json version 11.0.0.0 referenced in the project ( so I'm not sure why it's wanting version 6.0.0.0).
I have ensured that the web.config has:
<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>
During the parallel run, one test (presumably the one that runs first), passes, and all others fail with the identical exception.
I've updated from Newtonsoft.Json version 11.0.1 to 11.0.2 and that appears to have fixed my issue.
User contributions licensed under CC BY-SA 3.0