Тестирование приложения UWP с xUnit на VS2015

Мне удалось создать проект xUnit на VS2015 для модульного тестирования приложений UWP. У этого вопроса есть предыстория здесь, в stackoverflow что дает некоторый контекст этому вопросу.

Я могу скомпилировать и запустить тест, однако, когда я ссылаюсь на тестируемый проект, возникает следующая ошибка.

------ Run test started ------
Updating the layout...

Checking whether required frameworks are installed...

Registering the application to run from layout...

Deployment complete (1857ms). Full package name: "8f4533e5-fec8-415b-94ab-6bce6b37374f_1.0.0.0_x86__5gyrq6psz227t"

A user callback threw an exception.  Check the exception stack and inner exception to determine the callback that failed.
========== Run test finished: 0 run (0:00:04.3378913) ==========

Я понимаю, что упомянутый проект (который должен быть протестирован) вызывает a user callback threw an exception, но я не вижу очевидного способа отладить эту ошибку. Режим выполнения не похож на обычную отладку, которую можно проверить с помощью точек останова.

Кто-нибудь знает, как покопаться и выяснить, что вызывает ошибку a user callback threw an exception? Тестируемый проект приложения не содержит ошибок и отлично работает сам по себе.


person user2921851    schedule 13.01.2016    source источник


Ответы (1)


Хорошо, я провел некоторое исследование и самообучение, и теперь я могу ответить на свой вопрос.

Самый важный факт:

Вы не можете выполнять модульное тестирование проекта UWP, только библиотеку классов (в настоящее время).

Выше приведена цитата Джерри Никсона (см. в конце связанной страницы). Итак, этим все сказано, но незнание этого важного факта, несомненно, приведет вас к погоне за дикими гусями, как это случилось со мной.

Вышеизложенное означает, что, если вы еще этого не сделали, вам необходимо разделить проект приложения на часть пользовательского интерфейса (представление и другие части, связанные с пользовательским интерфейсом), а остальные — на проект библиотеки, не относящейся к пользовательскому интерфейсу (включая модели, доступ к данным методы и др.); проект библиотеки без пользовательского интерфейса является кандидатом на модульное тестирование. К счастью, это было легко сделать с моим приложением, и теперь я могу выполнять модульное тестирование наиболее важных частей своего приложения, ссылаясь на часть библиотеки классов в тестовом проекте. Это было также поучительно для будущего.

Таким образом, указанная выше ошибка возникает из-за ссылки на загруженный пользовательский интерфейс проект UWP, который в настоящее время не может быть протестирован.

person user2921851    schedule 15.01.2016