我们想要在Microsoft Surface(ARM版本)上运行一套测试(本机库的测试用例)。从Visual Studio手动完成它很容易。但是,我们希望以一种可以从命令行编译,安装,运行和收集输出的方式自动化该过程(例如,从Jenkins CI)。
在iOS上有Fruitstrap模仿XCode来为iOS做类似的任务。是否有Microsoft /第三方工具可以帮助我们为Surface执行此操作?
关于自动化GUI测试(Best way to test a Microsoft Surface application)的问题在这种情况下并不相关,因为我们没有任何GUI,问题是从主机上以非交互方式上传和启动Surface上的应用程序。
编辑:有一个很好的视频,说明如何在VS2012 http://www.youtube.com/watch?v=o-Gi6REeGN0中使用Google测试框架,但我们的问题是我们要在Microsoft Surface而不是主机上运行测试。
答案 0 :(得分:0)
我之前使用psexec在特定环境中运行测试,看起来psexec在Surface上运行:
http://technet.microsoft.com/en-us/library/ee692107(v=surface.10).aspx
我不确定你可以在表面上运行mstest.exe或nunit.exe,所以如果没有,我会制作自己的轻量级测试框架,它会产生某种易于解析的输出(可能是xml)测试结果并将它们放在.exe文件中。
所以你的jenkins构建脚本会有这样的步骤:
[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/
祝你好运。听起来像一个有趣的任务。请更新您最终如何解决此问题。