6

我们有一套要在 Microsoft Surface(ARM 版本)上运行的测试(本机库的测试用例)。在 Visual Studio 中手动操作很容易。但是,我们希望以一种可以编译、安装、运行和收集命令行输出(例如来自 Jenkins CI)的方式自动化该过程。

在 iOS 上,有模拟 XCode 的 Fruitstrap 为 iOS 执行类似的任务。是否有 Microsoft/第三方工具可以帮助我们为 Surface 执行此操作?

在这种情况下,关于自动化 GUI 测试(测试 Microsoft Surface 应用程序的最佳方法)的问题不相关,因为我们没有任何 GUI,问题是从主机以非交互方式上传和启动 Surface 上的应用程序。

编辑:有一个关于如何在 VS2012 http://www.youtube.com/watch?v=o-Gi6REeGN0中使用 Google 测试框架的精彩视频,但我们的问题是我们想在 Microsoft Surface 上运行测试而不是主人。

4

1 回答 1

1

我之前使用 psexec 在特定环境中运行测试,似乎 psexec 在 Surface 上运行:

http://technet.microsoft.com/en-us/library/ee692107(v=surface.10).aspx

我不确定您是否可以在表面上运行 mstest.exe 或 nunit.exe,所以如果不能,我会制作自己的轻量级测试框架,它会产生某种易于解析的输出(可能是 xml)和测试结果和把它放在一个.exe文件中。

所以你的詹金斯构建脚本会有这样的步骤:

[Copy SurfaceTests.exe to \\mySurfaceDevice\c$\testfolder]
psexec.exe \\mySurfaceDevice c:\testfolder\surfacetests.exe  > c:\testfolder\output.xml
[Copy \\mySurfaceDevice\c$\testfolder\output.xml to jenkins folder]

那么你将不得不配置 jenkins 来解析你的输出。如果您调查 nunit 或 mstest 结果的输出,您可能会在您的 surfacetests.exe 中生成类似的内容,并设置 jenkins,就好像它是由其中一个生成的一样。我对 Jenkins 没有任何经验,但在 Cruisecontrol.net 中,制作解析 xml 输出并在构建报告中呈现的 xslt 文件非常容易。

如果 psexec 方法不起作用,我会制作一个始终在设备上运行的小型 wcf 服务主机。该服务有一个方法 (RunTests()),只要它被调用就会执行你的 surfacetests.exe。或者更好的是,也许只是从存储在磁盘上的程序集运行测试(你必须做一些反射才能实现这一点),并在方法调用中返回结果。这是一篇文章,解释了如何创建将在 Windows 商店应用程序上运行的服务

http://www.c-sharpcorner.com/uploadfile/7e39ca/simple-wcf-service-in-windows-store-apps/

祝你好运。听起来是个有趣的任务。请更新您最终如何解决此问题。

于 2013-12-12T08:44:49.407 回答