有什么像Windows xvfb或xnest?

在使用驱动GUI的端到端testing的项目上,由于GUI自动化驱动程序干扰桌面,因此在开发人员工作站上运行testing很尴尬。 它移动鼠标,将焦点从我们想要使用的应用程序中移开,如果我们在testing运行期间切换到另一个应用程序,就可以开始在错误的应用程序中input文本。

在Linux上,我们通过在虚拟X服务器(xvfb或xnest)上运行被测应用程序来解决这个问题。 使用xnest,我们可以看到正在运行的testing,但仍然使用真实的桌面而不受干扰。

有什么等效的Windows

您可以使用SysInternals软件包中的“ 桌面 ”应用程序。 在一个桌面上运行UI测试并在另一个桌面上工作。

我发现了一个名为“RunProcess.exe”的免费程序,由Frank P. Westlake编写,可以运行一个绑定到非交互式(如屏幕外)WindowStation桌面的进程。 但是,没有来源。

因此,我用Java和JNA实现了自己的版本(比Frank Westlake简单)。 它位于工具模块的Window Licker存储库中。 这个类叫做com.objogate.wl.win32.RunOnDesktop 在某些时候,我可能会将它移植到C,并将其设置为正常的命令行.exe,或者将其转换为Ant任务,以便在屏幕外运行测试。

我只是尝试了我的Windows 10机器上的多个桌面方法。 我正在运行seleniumium Javascript测试。 我在另一台桌面上启动了测试,并等待它打开浏览器,然后切换回我的主桌面。 但是,在Chrome浏览器将成为活动窗口的同时,现在它实际上迫使我回到那个桌面:-(

我想我会尝试RunProcess.exe,或Nat的解决方案。