我在VS2015的测试资源管理器中显示为外部的所有异步xUnit测试都有问题。当在测试资源管理器中调用"全部运行"时,它们仍然会运行,但由于它们被认为是外部的,因此几乎所有VS2015集成都不起作用,例如导航(单击测试资源管理器中的"运行/调试测试")不起作用,上下文菜单中的"运行/调试测试"永远不会触发测试,测试状态图标不显示,Code Lens也找不到这些测试。
异步测试使用以下模式:
[Fact]
public async Task AsyncTestMethod()
{
// Arrange
var sot = new Sot();
var result = await sot.DoAsync();
Assert.NotNull(result);
}
更改测试以同步运行可以修复所有这些问题:
[Fact]
public void SyncTestMethod()
{
// Arrange
var sot = new Sot();
var result = sot.DoAsync().Result;
Assert.NotNull(result);
}
我正在运行RTM版本的VS2015,并在我的项目中安装了xunit.runnet.aspnet 2.0.0-aspnet-beta6包。
有什么建议可以解决这个问题,或者这只是一个bug?在这种情况下,它可能是xUnit测试运行器问题还是VS2015中的问题?
此错误已在ASP中确认并修复。. NET 5 beta7版本。
有关更多信息,请参阅以下github问题:
- https://github.com/aspnet/Tooling/issues/130
- https://github.com/aspnet/Testing/issues/86