【问题标题】:dotnet core: can't run unit testsdotnet core:无法运行单元测试
【发布时间】:2017-05-26 00:29:47
【问题描述】:

我正在使用 dotnet core 开发应用程序。 当我尝试运行单元测试时,我收到以下消息:

The active test run was aborted. Reason: Unable to communicate with test host process.

我已经检查了我的 .csproj 文件,我已经卸载并再次安装了 dotnet core,尝试重建项目,尝试再次恢复包,搜索代码错误,但我不知道发生了什么。

我使用的是 Ubuntu 16.04。

面临该问题的项目可在此处获得:https://github.com/andremteixeira/Personal-Accounting

【问题讨论】:

    标签: c# .net .net-core xunit.net


    【解决方案1】:

    您创建了一个堆栈溢出异常,不幸的是,该异常使测试主机进程完全崩溃..

    问题是:

    1. 调用任意运算符
    2. 这调用CheckNullity
    3. CheckNullity 有一个 a == null 比较
    4. 这会调用自定义bool operator == (Money a, Money b)
    5. 转发到bool IsEquivalent(Money a, Money b)
    6. 检查a != null
    7. 调用自定义运算符bool operator != (Money a, Money b)
    8. 检查a == null
    9. 这又落在了 4.

    如果我替换

    if (a == null || b == null)
    

    if (Object.ReferenceEquals(a, null) || Object.ReferenceEquals(b, null))
    

    CheckNullity 中,它打破了循环并运行所有测试。

    【讨论】:

    • 你是怎么弄出来的?
    • dotnet test -d diag.log 打印了一个堆栈溢出异常(遗憾的是没有堆栈跟踪),所以我寻找可能导致异常的地方..
    • 哇。这需要大量的语言经验。谢谢!
    • 嗨,马丁。当我今天回家并测试您的解决方案时,它仍然无法正常工作。你能帮忙弄清楚吗?我看到你有很好的专业知识,可以帮助我解决这个问题。我将不胜感激。 :)
    • 又是我。我在我的代码中发现了更多与生成堆栈溢出并应用您的建议的情况相同的地方。现在它完美地工作了。耶! :D
    猜你喜欢
    • 2019-07-20
    • 2021-05-02
    • 1970-01-01
    • 2019-05-03
    • 2018-08-08
    • 1970-01-01
    • 1970-01-01
    • 2016-03-23
    • 1970-01-01
    相关资源
    最近更新 更多