2017-05-26 74 views
2

我正在开发一个使用dotnet核心的应用程序。 当我试图运行单元测试,我收到以下消息:dotnet核心:无法运行单元测试

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

我已经检查了我的.csproj文件,我已经uninstaled和instaled再次DOTNET核心,试图重建项目,试图恢复再次打包,搜索代码错误,但我不知道发生了什么。

我使用的是Ubuntu 16.04。

所面临的问题,该项目可以在这里找到:https://github.com/andremteixeira/Personal-Accounting

回答

6

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

的问题是:

  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.

,如果我在CheckNullity取代

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

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

它打破了周期,所有的测试运行。

+0

你是怎么弄出来的? –

+2

'dotnet test -d diag.log'打印出一个堆栈溢出异常(可惜没有堆栈跟踪),所以我寻找可能会导致一个的地方.. –

+0

哇。这会花费大量的语言经验。谢谢! –