c# - 在 NUnit.ConsoleRunner.3.2.1 中运行测试时,NUnit 运行器失败

标签 c# selenium-webdriver nunit-console

所以这是困扰我的测试套件的错误。

[07:34:36][Step 4/4] Exception has been thrown by the target of an invocation.
[07:34:36][Step 4/4] 
[07:34:36][Step 4/4] Server stack trace: 
[07:34:36][Step 4/4]    at System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor)
[07:34:36][Step 4/4]    at System.Reflection.RuntimeConstructorInfo.Invoke(BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
[07:34:36][Step 4/4]    at System.RuntimeType.CreateInstanceImpl(BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture, Object[] activationAttributes, StackCrawlMark& stackMark)
[07:34:36][Step 4/4]    at System.Activator.CreateInstance(Type type, BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture, Object[] activationAttributes)
[07:34:36][Step 4/4]    at System.Activator.CreateInstance(String assemblyString, String typeName, Boolean ignoreCase, BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture, Object[] activationAttributes, Evidence securityInfo, StackCrawlMark& stackMark)
[07:34:36][Step 4/4]    at System.Activator.CreateInstance(String assemblyName, String typeName, Boolean ignoreCase, BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture, Object[] activationAttributes, Evidence securityInfo)
[07:34:36][Step 4/4]    at System.AppDomain.CreateInstance(String assemblyName, String typeName, Boolean ignoreCase, BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture, Object[] activationAttributes, Evidence securityAttributes)
[07:34:36][Step 4/4]    at System.AppDomain.CreateInstanceAndUnwrap(String assemblyName, String typeName, Boolean ignoreCase, BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture, Object[] activationAttributes, Evidence securityAttributes)
[07:34:36][Step 4/4]    at System.AppDomain.CreateInstanceAndUnwrap(String assemblyName, String typeName, Boolean ignoreCase, BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture, Object[] activationAttributes, Evidence securityAttributes)
[07:34:36][Step 4/4]    at NUnit.Engine.Drivers.NUnit3FrameworkDriver.Run(ITestEventListener listener, String filter)
[07:34:36][Step 4/4]    at NUnit.Engine.Runners.DirectTestRunner.RunTests(ITestEventListener listener, TestFilter filter)
[07:34:36][Step 4/4]    at System.Runtime.Remoting.Messaging.StackBuilderSink._PrivateProcessMessage(IntPtr md, Object[] args, Object server, Object[]& outArgs)
[07:34:36][Step 4/4]    at System.Runtime.Remoting.Messaging.StackBuilderSink.SyncProcessMessage(IMessage msg)
[07:34:36][Step 4/4] 
[07:34:36][Step 4/4] Exception rethrown at [0]: 
[07:34:36][Step 4/4]    at System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg)
[07:34:36][Step 4/4]    at System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type)
[07:34:36][Step 4/4]    at NUnit.Engine.ITestEngineRunner.Run(ITestEventListener listener, TestFilter filter)
[07:34:36][Step 4/4]    at NUnit.Engine.Runners.ProcessRunner.RunTests(ITestEventListener listener, TestFilter filter)
[07:34:36][Step 4/4] 
[07:34:36][Step 4/4] Test Run Summary
[07:34:36][Step 4/4]   Overall result: Failed
[07:34:36][Step 4/4]   Test Count: 0, Passed: 0, Failed: 0, Inconclusive: 0, Skipped: 0
[07:34:36][Step 4/4]   Start time: 2016-05-19 14:15:21Z
[07:34:36][Step 4/4]     End time: 2016-05-19 14:34:35Z
[07:34:36][Step 4/4]     Duration: 1154.123 seconds

那么我从这个错误中了解到了什么。

我只在 NUnit.ConsoleRunner.3.2.1 中运行测试套件时遇到此异常。在 VS 中运行测试时,我没有收到此错误。

只有当我在同一个构建中同时运行我的两个测试套件时,我才会收到此错误。当我运行整个过程时,我只会得到这个异常。我做了很多次运行,取出一些测试,让它们只运行一个套件,然后运行另一个套件。除了一切都有效,但他们一起有这个问题。

这似乎也不是由我的测试代码中的任何事件触发的。我在每个测试用例的开始和结束以及 OneTimeTearDown 中添加了日志记录,运行后我可以在日志中看到所有测试用例都已完成并且所有拆卸都已完成。这个问题似乎发生在 NUnit 生成测试结果/报告时。有关此异常的任何信息都会很棒。我想最坏的情况是我将我的测试套件分成不同的分支并独立运行它们,但我宁愿让它们全部运行一个作业而不是多个。

最佳答案

所以我最终向 NUnit 开发人员提交了错误报告。 https://github.com/nunit/nunit/issues/1509

对我有用的是使用标志 --inprocess 执行我的测试,暂时解决了这个问题。随着 NUnit ConsoleRunner 3.4.1 的发布,他们刚刚将此错误标记为“已关闭”。我已经删除了 --inprocess 并且没有看到问题出现,尽管让我证明目前我的测试套件仅针对 Firefox 运行,因为 Chrome v 51 运行时存在不同的问题session[0] 这是我运行它们的 TeamCity 服务器启动 chrome 的方式。

希望对你有帮助

关于c# - 在 NUnit.ConsoleRunner.3.2.1 中运行测试时,NUnit 运行器失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37329174/

相关文章:

c# - PinvokeStackImbalance 错误 (C#)

java - Selenium,在表中定位单元格

selenium - 使用 SendKeys 向 IE 11 发送 '@' 特殊字符

linux - Linux(64 位)org.openqa.selenium.NoSuchElementException 上的 phantomjs 异常错误

c# - NUnit 3 扩展以在失败的 Debug.Assert 上进行失败测试

wpf - NUnit 测试过程经常因 WPF 控件失败

c# - WCF 中的FaultException 与异常

c# - 我应该停止与 Visual Studio 的默认命名空间命名约定作斗争吗?

nunit-3.0 - NUNIT3-CONSOLE 排除特定测试类别

c# - 检查代码是否从 Windows 窗体应用程序调用