Closed Jazzman82 closed 1 year ago
This is obviously a conflict between BoDi-Usage and dotcover. I could reproduce with very simple testproject (no specflow) but only BoDi NuGet-Reference where the problem occurred as well.
This led me to a simple workaround: just exclude BoDi from dotcover (/Filters=-:module=BoDi) and now everything works like a charm!
the whole working commandline is
.\packages\JetBrains.dotCover.CommandLineTools.2022.3.1\tools\dotCover.exe cover /TargetExecutable=packages\NUnit.ConsoleRunner.3.16.2\tools\nunit3-console.exe /TargetWorkingDir=. /Output=coverage.html /TargetArguments=ClassLibrary1\bin\Debug\ClassLibrary1.dll /Filters=-:module=BoDi
Hope this helps someone else also.
This thread has been automatically locked since there has not been any recent activity after it was closed. Please open a new issue for related bugs.
SpecFlow Version
3.9.74 (same also on SpecFlow.4.0.16-beta)
Which test runner are you using?
NUnit
Test Runner Version Number
3.13.3
.NET Implementation
equal or greater .NET Framework 4.6.1
Project Format of the SpecFlow project
Classic project format using
packages.config
.feature.cs files are generated using
SpecFlow.Tools.MsBuild.Generation NuGet package
Test Execution Method
Command line – PLEASE SPECIFY THE FULL COMMAND LINE
SpecFlow Section in app.config or content of specflow.json
No response
Issue Description
When trying to use dotcover CLI https://www.jetbrains.com/help/dotcover/Running_Coverage_Analysis_from_the_Command_LIne.html#basic with a project containing Specflow-Tests, the following exception is thrown:
System.TypeInitializationException : Der Typeninitialisierer für "BoDi.ObjectContainer" hat eine Ausnahme verursacht. ----> System.Security.VerificationException : Dieser Vorgang kann die Laufzeit destabilisieren. bei BoDi.ObjectContainer..ctor(IObjectContainer baseContainer) bei TechTalk.SpecFlow.Infrastructure.ContainerBuilder.CreateGlobalContainer(Assembly testAssembly, IRuntimeConfigurationProvider configurationProvider) in D:\a\1\s\TechTalk.SpecFlow\Infrastructure\ContainerBuilder.cs:Zeile 33. bei TechTalk.SpecFlow.TestRunnerManager.CreateTestRunnerManager(Assembly testAssembly, IContainerBuilder containerBuilder) in D:\a\1\s\TechTalk.SpecFlow\TestRunnerManager.cs:Zeile 247. bei System.Collections.Concurrent.ConcurrentDictionary
2.GetOrAdd(TKey key, Func2 valueFactory) bei TechTalk.SpecFlow.TestRunnerManager.GetTestRunnerManager(Assembly testAssembly, IContainerBuilder containerBuilder, Boolean createIfMissing) in D:\a\1\s\TechTalk.SpecFlow\TestRunnerManager.cs:Zeile 207. bei TechTalk.SpecFlow.TestRunnerManager.<OnTestRunStartAsync>d__43.MoveNext() in D:\a\1\s\TechTalk.SpecFlow\TestRunnerManager.cs:Zeile 267. --- Ende der Stapelüberwachung vom vorhergehenden Ort, an dem die Ausnahme ausgelöst wurde --- bei System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() bei System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) bei System.Runtime.CompilerServices.TaskAwaiter.GetResult() bei ClassLibrary1_NUnitAssemblyHooks.<AssemblyInitializeAsync>d__0.MoveNext() in C:\Users\buhlt\RiderProjects\Solution2\ClassLibrary1\obj\Debug\NUnit.AssemblyHooks.cs:Zeile 18. --- Ende der Stapelüberwachung vom vorhergehenden Ort, an dem die Ausnahme ausgelöst wurde --- bei System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() bei System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) bei System.Runtime.CompilerServices.TaskAwaiter
1.GetResult() bei NUnit.Framework.Internal.TaskAwaitAdapter.GenericAdapter1.GetResult() bei NUnit.Framework.Internal.AsyncToSyncAdapter.Await(Func
1 invoke) bei NUnit.Framework.Internal.Commands.SetUpTearDownItem.RunSetUpOrTearDownMethod(TestExecutionContext context, IMethodInfo method) bei NUnit.Framework.Internal.Commands.SetUpTearDownItem.RunSetUp(TestExecutionContext context) bei NUnit.Framework.Internal.Commands.OneTimeSetUpCommand.<>c__DisplayClass0_0.<.ctor>b__0(TestExecutionContext context) bei NUnit.Framework.Internal.Commands.BeforeTestCommand.Execute(TestExecutionContext context) bei NUnit.Framework.Internal.Commands.BeforeTestCommand.Execute(TestExecutionContext context) bei NUnit.Framework.Internal.Execution.CompositeWorkItem.PerformOneTimeSetUp() --VerificationException bei JetBrains.Profiler.Core.Instrumentation.DataOnStack.JetBrains_Profiler_Core_Instrumentation_Measure(UInt64 , UInt32 ) bei BoDi.ObjectContainer..cctor() in C:\Work\BoDi\BoDi\BoDi.cs:Zeile 594. `Steps to Reproduce
.\packages\JetBrains.dotCover.CommandLineTools.2022.3.1\tools\dotCover.exe cover /TargetExecutable=packages\NUnit.ConsoleRunner.3.16.2\tools\nunit3-console.exe /TargetWorkingDir=. /Output=coverage.html /TargetArguments=ClassLibrary1\bin\Debug\ClassLibrary1.dll
Link to Repro Project
https://github.com/Jazzman82/SpecFlowDotCoverProblem