dotnet核心:无法运行单元测试

And*_*ira 2 .net c# xunit.net .net-core

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

The active test run was aborted. Reason: Unable to communicate with test host process.
Run Code Online (Sandbox Code Playgroud)

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

我正在使用Ubuntu 16.04.

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

Mar*_*ich 5

您创建了一个堆栈溢出异常,但遗憾的是它完全崩溃了测试主机进程.

问题是:

  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)
Run Code Online (Sandbox Code Playgroud)

if (Object.ReferenceEquals(a, null) || Object.ReferenceEquals(b, null))
Run Code Online (Sandbox Code Playgroud)

CheckNullity它打破循环和所有测试运行.

  • `dotnet test -d diag.log`打印出一个堆栈溢出异常(遗憾的是没有堆栈跟踪)所以我找了可能导致一个的地方.. (2认同)