无法通过控制台运行我的 SpecFlow 功能代码
Posted
技术标签:
【中文标题】无法通过控制台运行我的 SpecFlow 功能代码【英文标题】:Unable to run my SpecFlow features code through Console 【发布时间】:2021-12-12 14:34:05 【问题描述】:我是 SpecFlow 的初学者。我无法通过控制台文件运行 SpecFlow 功能。
我的 NUnit 版本:
NUnit - 3.13.1 NUnit3TestAdapter - 3.17.0 NUnit.ConsoleRunner - 3.11.1 NUnit.Console - 3.11.1C:\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
你能帮忙吗?
谢谢。
【问题讨论】:
【参考方案1】:NUnit3 Console Runner 还不能运行 .NET Core 测试。运行 netcoreapp3.1 目标测试的选项有:
-
使用单独提供的包 `NUnit.ConsoleRunner.NetCore 运行
使用 NUnit3 适配器在 Visual Studio 测试资源管理器下运行
使用 NUnit3 适配器在 vstest.exe 下运行
使用 NUnitLite 运行
使用 NUnit 的 TestCentric GUI 运行。
请注意,选项 1 仅作为测试版提供。 NUnit3 控制台运行器的未来版本将能够混合运行 .NET Framework 和 .NET Core 测试。
【讨论】:
使用 vstest 运行测试时抛出异常调用执行器“executor://specrun/executorV3.9.7”时发生异常:调用目标已抛出异常。 堆栈跟踪:在 System.RuntimeTypeHandle.CreateInstance(RuntimeType 类型,Boolean publicOnly,Boolean wrapExceptions,Boolean& canBeCached,RuntimeMethodHandleInternal& ctor,Boolean& hasNoDefaultCtor) 在 System.RuntimeType.CreateInstanceDefaultCtorSlow(Boolean publicOnly,Boolean wrapExceptions,Boolean fillCache) 在 System.RuntimeType.CreateInstanceDefaultCtor(Boolean publicOnly, Boolean skipCheckThis, Boolean fillCache, Boolean wrapExceptions) 在 System.Activator.CreateInstance(Type type, Boolean nonPublic, Boolean wrapExceptions) 其他 SO 用户可能需要有关在 nunit3-console 下运行 .NET Core 测试的答案。最好开始一个新问题,包含有关在 vstest.exe 下运行的完整信息。您应该包括版本信息和您在该问题中使用的任何 .runsettings。以上是关于无法通过控制台运行我的 SpecFlow 功能代码的主要内容,如果未能解决你的问题,请参考以下文章
在“添加新项目”窗口中找不到 SpecFlow 功能文件选项 - VS20019
SpecFlow 测试无法使用 Playwright.NET 运行