我如何修复"主动测试运行中止"在Visual Studio的测试资源管理器中?

时间:2018-06-04 18:23:07

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

"全部运行"来自" Test Explorer"没有完成(VS2017企业版)。它与Passed(411),Not Run(309)一起停止。计数略有不同,通常大约有一半半。

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

"中止了主动测试运行。原因:未处理的异常:System.AppDomainUnloadedException:尝试访问已卸载的AppDomain。"

测试继续在ReSharper中正常运行(720次传递720次)。 R#是我经常运行测试的地方。我跳到微软的测试资源管理器"当我试图分析代码覆盖率时(虽然测试在有或没有代码覆盖的情况下停止)。它(分析代码覆盖率)最近的工作时间为5/15/2018(之前至少有六到十几次)。 enter image description here

4 个答案:

答案 0 :(得分:3)

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

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

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

(这似乎使微软的测试运行器绊倒了,但不是ReSharper测试运行器。具体来说,Microsoft Test Runner中止sln测试运行并跳过300多个测试.ReSharper能够无故障地运行所有测试。)

除此之外:Windows 7与Windows 10的行为各不相同的原因是测试类适用于Windows 10敏感的第三方控件/库。

答案 1 :(得分:0)

在某些情况下,重新启动VS也可以“修复”此问题。

答案 2 :(得分:0)

很简单 构建 -> 清除解决方案 对我有帮助。

答案 3 :(得分:0)

检查测试输出窗格以了解更多详细信息-打开输出窗口,然后从“显示输出自”组合框中选择“测试”选项。

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