MSpec 在 ReSharper 下运行良好,但 TD.NET 抛出异常
-
24-10-2019 - |
题
当我尝试使用 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中吗?查看此帖子以帮助您:
http://eduncan911.com/blog/registering-mspec-runners-for-testrive-net-on-windows-x64.aspx
其他提示
如果您之前注册过 TD.Net 运行程序,请取消注册(可能需要一些注册表破解 - 请参阅 InstallTDNetRunner.bat
如何撤消)。
请确保您运行 TD.Net >= 2.24。将 NuGet 包添加到您的项目并通过 TD.Net 运行测试。NuGet 包还包含您可能想要安装的更新的 ReSharper 运行程序。
如果错误仍然存在,则很可能在某处引用了旧版本的 MSpec。旧版本是 0.3.0.0,而 NuGet 当前版本是 0.4.7.0。
(我可能会补充一点 - 当您发布问题时,我们已经有一个由某人贡献的 NuGet 包。该软件包不包含适当的 TD.Net 运行程序。现在我们有了一个包含所有运行程序的新 NuGet 包,您描述的问题应该已经解决。)
不隶属于 StackOverflow