UWP 应用程序中的单元测试引发 COMException

Posted

技术标签:

【中文标题】UWP 应用程序中的单元测试引发 COMException【英文标题】:Unit Testing in UWP application throws COMException 【发布时间】:2017-10-16 15:27:07 【问题描述】:

这是我用来重现问题的设置:

    使用一次调用创建 UWP 库,如下所示:

    using namespace Windows::UI::ViewManagement;
    void noop() 
      auto bounds = ApplicationView::GetForCurrentView()->VisibleBounds;
    
    

    此函数使用 ApplicationView 获取当前应用实例的屏幕边界。

    创建另一个引用该库的 UWP 测试应用。在它的测试方法中,我从 MyLib 调用 noop()。

在运行测试时,它失败并抛出一个 Platform::COMException^。有什么我遗漏的吗?

感谢您的宝贵时间。

【问题讨论】:

【参考方案1】:

您可能应该在 UI 线程上调用 noop(),因为您正在处理一些 UI 元素。

您可以在测试方法实现的顶部使用[UITestMethod] 而不是[TestMethod]

【讨论】:

以上是关于UWP 应用程序中的单元测试引发 COMException的主要内容,如果未能解决你的问题,请参考以下文章

[在运行单元测试(UWP)时启动应用程序

什么 UWP API 引发购买事件?

hockeyapp 在 xamarin.forms 应用程序中的 UWP 上引发异常

使用Jenkins进行的UWP单元测试

在多窗口 UWP 应用中引发和处理事件

在 Visual Studio 2015 for UWP 中加速单元测试的任何方法