Подтвердить что ты не робот

Unit Test Проводник не отображает тесты асинхронного модуля для приложений для метро

Не уверен, что это известная проблема. Я использую VS2012 RC (Ultimate) и Win8 Release Preview. Я создал библиотеку Unit Test (приложение стиля метро) и написал Unit Test, который включает в себя ключевые слова async/await. Однако, когда я компилирую проект Unit Test, Unit Test Проводник не показывает Тест, который я написал. Если я исключу ключевые слова async/await, то в тесте, который я только что написал, появляется Unit Test Explorer. Кто-нибудь сталкивался с этим раньше, или это только я?

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

Ответ 1

Unit test методы, которые async должны возвращать Task, а не void.

Это потому, что методы async void трудно отследить: нет никакой простой возможности для библиотеки тестирования модулей узнать, что тест завершен. (Это сложно, но я думаю, что это невозможно. Вы можете сделать это, используя пользовательский SynchronizationContext.)