单元测试资源管理器不会显示 Metro 应用的异步单元测试

本文关键字:单元测试 应用 异步 Metro 显示 资源管理器 | 更新日期: 2023-09-27 18:37:20

不确定这是一个已知问题。我使用的是VS2012 RC(旗舰版)和Win8发布预览版。我创建了一个单元测试库(metro风格的应用程序),并编写了一个单元测试,其中包括async/await关键字。但是,当我编译单元测试项目时,单元测试资源管理器不会显示我编写的测试。如果我排除 async/await 关键字,则单元测试资源管理器将显示在我刚刚编写的测试中。以前有没有人遇到过这种情况,还是只有我?

[TestClass]
public class UnitTest1
{
    [TestMethod]
    public async void SomeAsyncTest()
    {
        var result = await StorageFile.GetFileFromPathAsync("some file path");
    }
}

单元测试资源管理器不会显示 Metro 应用的异步单元测试

async

单元测试方法必须返回Task,而不是void

这是因为async void方法很难跟踪:单元测试库没有简单的方法来发现测试已完成。(这很难,但我认为这并非不可能。您可以使用自定义SynchronizationContext执行此操作。