Unit testing MSpec在ReSharper fine下运行,但TD.NET抛出异常

Unit testing MSpec在ReSharper fine下运行,但TD.NET抛出异常,unit-testing,resharper,bdd,testdriven.net,mspec,Unit Testing,Resharper,Bdd,Testdriven.net,Mspec,我在尝试使用TD.NET运行mspec规范测试时收到了这个异常 ------ Test started: Assembly: DesignRightWeb.Specs.dll ------ Error: Runner failure: System.Runtime.Serialization.SerializationException: Type is not resolved for member 'Machine.Specifications.Runner.RunOpti

我在尝试使用TD.NET运行mspec规范测试时收到了这个异常

------ Test started: Assembly: DesignRightWeb.Specs.dll ------

Error: Runner failure: System.Runtime.Serialization.SerializationException: Type is not         resolved for member 'Machine.Specifications.Runner.RunOptions,Machine.Specifications,     Version=0.3.0.0, Culture=neutral, PublicKeyToken=null'.
   at System.AppDomain.CreateInstanceAndUnwrap(String assemblyName, String typeName, Boolean ignoreCase, BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture, Object[] activationAttributes, Evidence securityAttributes)
   at     Machine.Specifications.Runner.Impl.AppDomainRunner.CreateRunnerAndUnloadAppDomain(String     runMethod, AppDomain appDomain, Assembly assembly, Object[] args) in d:\BuildAgent-    01\work\340c36596c29db8\Source\Machine.Specifications\Runner\Impl\AppDomainRunner.cs:line     81
Test 'T:DesignRightWeb.Specs.given_a_string_calculator' failed: Type is not resolved     for member 'Machine.Specifications.Runner.RunOptions,Machine.Specifications,     Version=0.3.0.0, Culture=neutral, PublicKeyToken=null'.
    System.Runtime.Serialization.SerializationException: Type is not resolved for member 'Machine.Specifications.Runner.RunOptions,Machine.Specifications, Version=0.3.0.0, Culture=neutral, PublicKeyToken=null'.
    at System.AppDomain.CreateInstanceAndUnwrap(String assemblyName, String typeName, Boolean ignoreCase, BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture, Object[] activationAttributes, Evidence securityAttributes)
    at Machine.Specifications.Runner.Impl.AppDomainRunner.CreateRunnerAndUnloadAppDomain(String runMethod, AppDomain appDomain, Assembly assembly, Object[] args)
    at Machine.Specifications.Runner.Impl.AppDomainRunner.RunMember(Assembly assembly, MemberInfo member)
    at Machine.Specifications.TDNetRunner.SpecificationRunner.RunMember(ITestListener testListener, Assembly assembly, MemberInfo member)
    at TestDriven.TestRunner.AdaptorTestRunner.Run(ITestListener testListener, ITraceListener traceListener, String assemblyPath, String testPath)
    at TestDriven.TestRunner.ThreadTestRunner.Runner.Run()

0 passed, 1 failed, 0 skipped, took 1.12 seconds (MSpec).
我尝试直接从Github安装MSpec,也使用NuGet安装了它。之后,当我收到同样的异常时,我卸载了TD.NET并重新安装了TD.NET。仍然收到此异常


有什么想法吗?思想?解决方案?

您是否需要将MSpec测试运行程序注册到TestDriven.NET?请查看此帖子以帮助您:


如果您以前注册过TD.Net runner,请将其注销(可能需要一些注册表黑客操作-请参阅
InstallTDNetRunner.bat
如何撤消)

请确保运行TD.Net>=2.24。将NuGet包添加到项目中,并通过TD.Net运行测试。NuGet包还包含一个更新的ReSharper runner,您可能希望安装它

如果错误仍然存在,您很可能在某个地方引用了旧版本的MSpec。旧版本是0.3.0.0,而NuGet目前是0.4.7.0


(我可以补充一点-在您发布问题时,我们有一个由某人提供的NuGet软件包。该软件包不包含适当的TD.Net runner。您描述的问题应该得到解决,因为我们有一个包含所有runner的新NuGet软件包。)

如果您使用TD.Net>=2.24,则无需注册runner。只需将
Machine.Specifications.dll.tdnet
Machine.Specifications.TDNetRunner.dll
放在项目引用的
Machine.Specifications.dll
旁边。