nunit - 无法通过控制台运行我的 SpecFlow 功能代码
问题描述
我是 SpecFlow 的初学者。我无法通过控制台文件运行 SpecFlow 功能。
我的 NUnit 版本:
- NUnit - 3.13.1
- NUnit3TestAdapter - 3.17.0
- NUnit.ConsoleRunner - 3.11.1
- NUnit.Console - 3.11.1
C:\Users\.nuget\packages\nunit.consolerunner\3.11.1\tools>nunit3-console.exe D:\automation\bin\Debug\netcoreapp3.1\automation.dll
NUnit Console Runner 3.11.1 (.NET 2.0)
Copyright (c) 2020 Charlie Poole, Rob Prouse
27 October 2021 10:43:34
Runtime Environment
OS Version: Microsoft Windows NT 6.2.9200.0
Runtime: .NET Framework CLR v4.0.30319.42000
Test Files
D:\automation\bin\Debug\netcoreapp3.1\automation.dll
Errors, Failures and Warnings
1) Error :
NUnit.Engine.NUnitEngineException : The NUnit 3 driver encountered an error while executing reflected code.
----> System.InvalidCastException : Unable to cast transparent proxy to type 'System.Web.UI.ICallbackEventHandler'.
--NUnitEngineException
The NUnit 3 driver encountered an error while executing reflected code.
Server stack trace:
at NUnit.Engine.Drivers.NUnit3FrameworkDriver.CreateObject(String typeName, Object[] args)
at NUnit.Engine.Drivers.NUnit3FrameworkDriver.Load(String testAssemblyPath, IDictionary`2 settings)
at NUnit.Engine.Runners.DirectTestRunner.LoadDriver(IFrameworkDriver driver, String testFile, TestPackage subPackage)
at NUnit.Engine.Runners.DirectTestRunner.LoadPackage()
at NUnit.Engine.Runners.DirectTestRunner.EnsurePackageIsLoaded()
at NUnit.Engine.Runners.DirectTestRunner.RunTests(ITestEventListener listener, TestFilter filter)
at System.Runtime.Remoting.Messaging.StackBuilderSink._PrivateProcessMessage(IntPtr md, Object[] args, Object server, Object[]& outArgs)
at System.Runtime.Remoting.Messaging.StackBuilderSink.SyncProcessMessage(IMessage msg)
Exception rethrown at [0]:
at System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg)
at System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type)
at NUnit.Engine.ITestEngineRunner.Run(ITestEventListener listener, TestFilter filter)
at NUnit.Engine.Runners.ProcessRunner.RunTests(ITestEventListener listener, TestFilter filter)
--
InvalidCastException
Unable to cast transparent proxy to type 'System.Web.UI.ICallbackEventHandler'.
at NUnit.Framework.Api.FrameworkController.LoadTestsAction..ctor(FrameworkController controller, Object handler)
Test Run Summary
Overall result: Failed
Test Count: 0, Passed: 0, Failed: 0, Warnings: 0, Inconclusive: 0, Skipped: 0
Start time: 2021-10-27 05:13:36Z
End time: 2021-10-27 05:13:44Z
Duration: 7.759 seconds
Results (nunit3) saved as TestResult.xml
你能帮忙吗?
谢谢你。
解决方案
NUnit3 Console Runner 还不能运行 .NET Core 测试。运行 netcoreapp3.1 目标测试的选项有:
- 使用单独提供的包 `NUnit.ConsoleRunner.NetCore 运行
- 使用 NUnit3 适配器在 Visual Studio 测试资源管理器下运行
- 使用 NUnit3 适配器在 vstest.exe 下运行
- 使用 NUnitLite 运行
- 使用 NUnit 的 TestCentric GUI 运行。
请注意,选项 1 仅作为 beta 版本提供。NUnit3 控制台运行器的未来版本将能够混合运行 .NET Framework 和 .NET Core 测试。