如何自动化测试UWP应用

99次阅读
没有评论

问题描述

有一个Universal Windows Platform (UWP)应用程序,但是他在测试它时遇到了一些问题。
首先,他在最新版本的Visual Studio(目前是V.S. 2017, 15.5.3)中运行MSTest时遇到了一些问题,测试应用程序弹出一个窗口并且不关闭,永远无法完成,并且不允许他运行两次。他已经搜索和调试了几天,但没有找到解决方法。他尝试过更改运行时版本和目标平台,重新开始,还尝试了一些同事的方法,但他们都遇到了同样的问题。所以MSTest在UWP应用程序中不起作用。他还尝试了通过命令行使用mstest.exe运行测试,但几个小时都无法运行,他怀疑是因为UWP平台的不成熟。
然而,即使MSTest可以正常工作,为了在构建中执行单元测试,他也必须在构建服务器上的无窗口环境中运行它们。TFS无法执行它,因为它必须弹出一个窗口,而公司的TFS服务器上没有运行GUI。
他转而使用xUnit来解决MSTest的问题。只需要稍微重写一下,就可以在单元测试方面重新开始工作。xUnit强制我在应用程序窗口中打开测试并从那里运行,因为xUnit for Windows Universal不集成到Visual Studio中。这也意味着我无法在TFS构建/集成服务器上无头运行它。我又回到了同样的困境。
那么我错过了什么?有没有办法通过TFS构建服务器自动化我的单元测试,或者我们选择了错误的平台?

解决方案

请注意以下操作注意版本差异及修改前做好备份。

方案1

根据用户的描述,他已经尝试了MSTest和xUnit,但都无法在UWP应用程序中实现自动化测试。然而,有一些其他的方法可以尝试来自动化UWP应用程序的单元测试。

使用VSTS进行自动化构建和测试

用户可以使用Visual Studio Team Services(VSTS)来设置自动化构建和测试。以下是一些步骤来帮助你开始:
1. 在VSTS中创建一个新的构建定义。
2. 配置构建定义以包含UWP应用程序的源代码和测试项目。
3. 在构建定义中添加一个测试任务,以运行UWP应用程序的单元测试。
4. 配置构建定义以在每次提交或定期触发时自动运行测试。
5. 保存并队构建定义进行队列构建。
6. 查看构建结果和测试报告。
有关如何设置自动化构建和测试的更详细说明,请参阅Set up automated builds for your UWP app

使用Win10 IoT Core进行自动化测试

如果你的UWP应用程序是为Windows 10 IoT Core开发的,你可以使用Win10 IoT Core来进行自动化测试。以下是一些步骤来帮助你开始:
1. 在Win10 IoT Core设备上安装你的UWP应用程序。
2. 配置Win10 IoT Core设备以允许远程访问。
3. 在你的开发机器上设置自动化测试项目,并将其连接到Win10 IoT Core设备。
4. 运行自动化测试项目以执行UWP应用程序的单元测试。
有关如何使用Win10 IoT Core进行自动化测试的更详细说明,请参阅DevOps for IoT with Win10 IoT Core, UWP, and VSTS

方案2

如果以上方法都无法满足你的需求,你可能需要重新评估你选择的平台。根据你的需求和约束条件,可能有其他适合自动化测试的平台。你可以考虑使用其他测试框架或工具,如Appium或WinAppDriver,来实现自动化测试。
请注意,不同的测试框架和工具可能需要不同的配置和设置。你需要根据你的具体情况进行进一步的研究和实验,以找到最适合你的需求的解决方案。

总结

在UWP应用程序中实现自动化测试可能会面临一些挑战,特别是在使用MSTest和xUnit时。然而,通过使用VSTS进行自动化构建和测试,或者使用Win10 IoT Core进行自动化测试,你可以找到一些解决方案。如果这些方法都不适用于你的情况,你可能需要重新评估你选择的平台,并考虑使用其他测试框架或工具来实现自动化测试。

正文完