单元测试资源管理器不会显示 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");
}
}
async
的单元测试方法必须返回Task
,而不是void
。
这是因为async void
方法很难跟踪:单元测试库没有简单的方法来发现测试已完成。(这很难,但我认为这并非不可能。您可以使用自定义SynchronizationContext
执行此操作。