6

当我在 Visual Studio 测试资源管理器的早期版本中运行测试时,出现导致构建运行程序崩溃的问题(例如AccessViolationExceptionStackOverflowExceptionOutOfMemoryException等),它会输出一条消息,显示抛出的异常类型以及如何启用日志获取更多详细信息。

使用 Visual Studio 2017 Community Edition 版本 15.3.2 和 .NET Core 1.0,当发生崩溃时,测试输出中显示的所有内容都是:

[8/30/2017 3:03:42 AM 错误] 活动测试运行已中止。

[8/30/2017 3:03:42 AM 信息] ========== 运行测试完成:1030 次运行 (0:41:12.5762484) ==========

如何确定导致构建运行程序崩溃的异常类型(最好使用堆栈跟踪)?

注意:在本次调查期间,我已经向NUnit 提出了一个问题,询问如何确定哪些测试导致了崩溃。我已经隔离(并解决了)其中两个原因。

  1. Debug.Assert.NET Core 2.0失败时致命地崩溃
  2. 由于在 32 位下运行,测试运行程序的虚拟内存不足。

但是至少还有一个问题会导致崩溃。我试图弄清楚为什么测试运行程序在 Visual Studio 2017 中崩溃但在命令行上没有崩溃。

另请注意,在 .NET Framework 上运行时不会发生此特定崩溃,因此建议使用不支持 .NET Core 1.0 或 .NET Core 2.0(例如vstest.console.exe)的命令行工具没有帮助。

4

1 回答 1

1

已经报告了几个与此类似的问题。这似乎是尚未修复的 Entity Framework Core 的错误。这也是已修复的 .NET Core 命令行 (CLI) 中的一个问题。

打开问题

SqlLite.FunctionalTests 有时在 Ubuntu #8642 上失败也有同样的问题,不同的应用程序类型,但同样的问题。OP 也很难找到错误的痕迹。

The active test run was aborted. Reason: 
null

当前打开的已标记为已阻止:

在分类中再次讨论并决定我们需要从测试运行者那里获得更多信息。评论Microsoft/vstest#527以获取更多信息。暂时标记为已阻止,直到我们从 vstest 团队获得一些信息。

6月22日关闭

没有说明测试运行被中止的原因。#527
被标记为重复:
显示使测试运行崩溃的测试(测试资源管理器)#627

解决方案是

这已在 dotnet-cli 2.0.0-preview1-005963 的最新开发版本中得到修复。从https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/2.0.0/dotnet-dev-win-x64.latest.zip下载。

我们还为 VS 修复了它。将在带有修复的构建可用时更新。

注意:由于dotnet/cli#6535,netcoreapp2.0 将显示问题。

.../修复在 VS15.3.0 preview2 中可用。

如何获取崩溃日志

除了确保您已启用诊断(我确定您已启用)或在控制台上运行它。

来自 github 问题的评论Show the test which crashed the test run (test explorer) #627

您能否启用 --diag:log.txt 开关以获取更多日志并分析 log.txt 和 log.*.host.txt 以获取更多详细信息?

因无复制而关闭

当静态构造函数抛出异常时,没有关于中止测试的解释。#334报告了同样的问题:

The active test run was aborted. Reason:

没理由。

它被关闭,因为没有复制。


解决在主线程上运行 nunit 测试的需要使用主循环运行单元测试

于 2017-09-06T15:45:01.273 回答