unit testing资源管理器不显示城域应用程序的异步unit testing
不确定这是一个已知问题。 我正在使用VS2012 RC(Ultimate)和Win8 Release Preview。 我创建了一个unit testing库(metro style app),并编写了一个unit testing,其中包括async / await关键字。 但是,当我编译unit testing项目时,unit testing资源管理器不会显示我写的测试。 如果我排除了async / await关键字,那么unit testing资源管理器会出现在我刚写的测试中。 有没有人以前遇到过这个,还是仅仅是我?
[TestClass] public class UnitTest1 { [TestMethod] public async void SomeAsyncTest() { var result = await StorageFile.GetFileFromPathAsync("some file path"); } }
async
unit testing方法必须返回Task
,而不是void
。
那是因为async void
方法很难跟踪:unit testing库没有简单的方法可以发现测试已经完成。 (这很难,但我认为这并非不可能。你可以通过使用自定义的SynchronizationContext
来实现这一点。)