xUnit不支持异步测试?

时间:2018-11-05 23:14:24

标签: c# .net xunit

我了解到xUnit V2.4.1支持异步测试(我在Visual Studio 2015项目中添加了nuget软件包xunit.runner.visualstudioxunit.runner.console。)因此,我创建了以下测试。

[Fact]
public async Task SearchItemSqlRepositoryModel_Reset()
{
     await _searchItemSqlRepository.GetSearchItems(....);
}

但是,Run Test显示“未找到要运行的测试”吗?

我尝试将Task更改为void,但仍然无法使用。

[Fact]
public async void SearchItemSqlRepositoryModel_Reset()

但是,同步版本有效。

[Fact]
public void SearchItemSqlRepositoryModel_Reset0()
{
    _searchItemSqlRepository.GetSearchItems(....).Wait();
}

2 个答案:

答案 0 :(得分:0)

这听起来像xUnit运行程序错误。

  • 右键单击编辑器,然后单击Run Tests将不会运行这些异步测试。
  • 但是,在测试资源管理器中单击Run All即可。但是它仍然不会在测试方法前面显示绿色的复选图标。不过,它将在“测试资源管理器”中显示绿色的复选图标。

答案 1 :(得分:0)

如果将“异步任务”更改为“异步无效”,则将运行测试。实际上,这种行为(某种)是设计使然。请参阅以下问题:

https://github.com/xunit/xunit/issues/1405