【发布时间】:2016-03-27 11:45:11
【问题描述】:
在article on strathweb 之后,我最近在我的 DNX 项目中添加了一些集成测试。这些在本地运行良好(对于内存网络服务器来说是的)。
但是,在运行 tests on a VM with only a single core 时,集成测试会无限期挂起(并最终失败,因为 appveyor 构建的上限为 60 分钟。
奇怪的是,当运行tests on a VM with more than one core 时,一切都运行良好。
显而易见的结论是,Microsoft.AspNet.TestHost.TestServer需要不止一个核心(或至少不止一个逻辑处理器)。有没有人有这方面的经验可以确认/拒绝?
【问题讨论】:
-
仅供参考:Katana 是 DNX 应用程序的前身。您使用的是 DNX/ASP.NET5,而不是 Katana。
-
分享测试代码可能会有所帮助。
-
感谢 Tratcher - 编辑帖子以删除 Katana。测试代码是 here - 它是一个开源项目,所以被测试的代码也在那个 repo 中。
-
啊,是
.Result让你崩溃了,它挂起你唯一核心上的线程,因此其他线程无法执行。将测试切换到public async Task并使用await。 -
真棒@Tratcher - 成功了!谢谢你。单个内核无法处理多个线程(多线程早于多核架构)有点奇怪,但我想我需要对 async 进行更多阅读才能理解这一点。无论如何感谢您的帮助!
标签: continuous-integration cpu dnx appveyor