在VS2015上使用xUnit测试UWP应用程序

时间:2016-01-13 10:24:49

标签: c# unit-testing visual-studio-2015 uwp xunit.net

我已经设法在VS2015上创建一个xUnit项目来对UWP应用进行单元测试。这个问题有一个背景here on 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错误的原因吗?要测试的应用程序项目没有错误,并且可以自行运行。

1 个答案:

答案 0 :(得分:7)

好的,做了一些研究和自学,现在我可以回答我自己的问题了。

最重要的事实:

  

您无法对UWP项目进行单元测试,只能对类库(此时)进行单元测试。

以上是Jerry Nixon的quote(见链接页面的末尾)。所以,这说明了一切,但不知道这个重要的事实无疑会让你对我进行疯狂的追逐。

上述意味着,如果您尚未完成,则需要将应用项目拆分为UI部分(视图和其他UI相关部分),其余部分拆分为非UI库项目(包括模型) ,数据访问方法等);非UI库项目是单元测试的候选项目。幸运的是,使用我的应用程序很容易实现这一点,现在我可以通过引用测试项目中的类库部件来单元测试应用程序中最关键的部分。对未来也有启发意义。

因此,上述错误是由于引用了一个无法在此时测试的UI负载UWP项目。