【问题标题】:How do I fix "The active test run was aborted" in Visual Studio's Test Explorer?如何修复 Visual Studio 测试资源管理器中的“活动测试运行已中止”?
【发布时间】:2020-11-12 21:12:26
【问题描述】:

“测试资源管理器”中的“全部运行”不再完成(VS2017 Enterprise)。它以 Passed (411)、Not Run (309) 停止。计数略有不同,通常大约是一半。

输出窗口(Visual Studio | 输出选项卡 | 显示来自:测试的输出)包含以下错误消息:

“活动测试运行已中止。原因:未处理的异常:System.AppDomainUnloadedException:尝试访问未加载的 AppDomain。”

测试在 ReSharper 中继续运行良好(720 次中的 720 次通过)。 R# 是我通常运行测试的地方。当我尝试分析代码覆盖率时,我会跳到 Microsoft 的“测试资源管理器”(尽管测试在有或没有代码覆盖的情况下都会停止)。它(分析代码覆盖率)最近工作到 2018 年 5 月 15 日(在此之前至少有六到十次)。

【问题讨论】:

  • 在至少 1 次并行测试中,相同的源代码在 2 台机器上表现不同。 Windows 10 Surface 平板电脑使用“分析代码覆盖率”运行 771/771 测试没有问题。与此同时,一台 Windows 7 台式电脑未能运行 771 次测试中的 319 次(状态为“未运行测试 (319)”)。 ReSharper 测试运行器在两台机器上都可以正常工作。

标签: c# unit-testing visual-studio-2017


【解决方案1】:

Microsoft 测试运行程序被单个单元测试类绊倒,该类恰好有 Task.Run() 调用,如下所示:

    var task = Task.Run(async () =>
    {
        <various code>
    });

这些测试缺少对 task.Wait() 的调用以等待每个任务完成后再退出测试。

(这似乎会导致 Microsoft 测试运行程序而不是 ReSharper 测试运行程序发生故障。具体来说,Microsoft 测试运行程序会中止 sln 测试运行并跳过 300 多个测试。ReSharper 能够运行所有测试而没有发生任何事故。)

另外:Windows 7 与 Windows 10 上的行为不同的原因是因为测试类是针对 Windows 10 敏感的第 3 方控件/库。

【讨论】:

    【解决方案2】:

    查看测试输出窗格以获取更多详细信息 - 打开输出窗口并从“显示输出自”组合框中选择“测试”选项。

    就我而言,我的测试项目针对的是我没有安装的 .NET 核心版本。我只需要将项目目标框架更改为正确的版本即可解决问题。

    【讨论】:

    • 毫不奇怪,如果正在测试的测试/代码出现问题,这也可能发生在 VS 2019 中。就我而言,我的代码中存在堆栈溢出(仅在 5 小时睡眠时可能发生),因此测试被中止。
    【解决方案3】:

    很简单 构建 -> 明确解决方案 帮帮我。

    【讨论】:

    • 你的意思可能是 Build -> Clean Solution
    猜你喜欢
    • 1970-01-01
    • 2018-05-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-03
    • 1970-01-01
    • 2019-02-24
    • 2021-08-01
    相关资源
    最近更新 更多