2016-01-13 3 views
3

Мне удалось создать проект xUnit на VS2015 для тестирования UWP-приложений. В этом вопросе есть вопрос here on stackoverflow, который дает некоторый контекст этому вопросу.Тестирование приложения UWP с xUnit на VS2015

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

------ 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? Проект приложения, который будет протестирован, безошибочен и отлично работает сам по себе.

ответ

7

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

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

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

Вышеуказанное является quote от Jerry Nixon (см. Конец ссылки на страницу). Итак, это все говорит, но не зная этого важного факта, несомненно, поставит вас на дикую гонящую погоню, как это было со мной.

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

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

Смежные вопросы