Visual Studio Team Services Build 中的端到端测试可以 运行 吗?

Can end-to-end tests in Visual Studio Team Services Build be run?

我有一组 mocha 测试,可以启动 Spectron 对 Electron 应用程序进行端到端测试。

当我尝试 运行 通过 npm run 测试时,它们只是超时并失败了。该应用程序似乎没有启动。 VSTS 中有一个 Run Functional Tests 构建步骤模板,但这是用于实际测试 DLL 的。 Javascript 端到端测试是否有类似的东西?

Hosted Agent 是 运行 作为服务,但是启动 Spectron 以使用 Electron 应用程序进行测试需要与 window 交互并且测试是 运行 在构建代理机器上。因此,您需要设置一个本地构建代理来执行该测试(使用 this 测试示例对我来说效果很好。构建步骤:npm install、npm install test)

  1. 使用您已按上述说明准备权限的帐户登录计算机。
  2. 转到代理池控制面板选项卡
  3. 单击下载代理。
  4. 点击Windows。
  5. 单击“下载”按钮。
  6. 运行 PowerShell 作为管理员。
  7. 运行 创建代理下的命令。
  8. 运行.\配置命令

有关设置本地构建代理的更多信息,您可以参考this文章。

由于测试需要与桌面交互,因此它们不适合编译时,因为您通常没有 运行ning 应用程序实例。在构建时坚持纯单元测试。更合适的方法是使用发布管理来编排这些测试。

也就是说,您可以轻松部署您的应用程序(构建或发布)和。使用功能测试任务来启动您的 UI 交互式任务。您需要一台部署了测试代理的机器,但也有一个任务。

由于功能(端到端)测试与桌面交互,您一次只能 运行 一个。如果您只需要几分钟,这很好,但是随着您获得更多功能性奶头,这可能需要更长的时间。功能测试任务允许您跨多个代理拆分测试执行,以便您可以 运行 并行测试。

由于您的替代方案是在交互模式下配置您自己的构建代理,因此您无论如何都需要一个服务器。从一开始就可以使用此模型,因为您可以扩展。

如果 Visual Studio 测试适配器不适用于您的框架,那么您可以创建自己的框架,让 Visual Studio 以及功能测试插件检测并执行任何测试框架。对于 Javascript,您会发现 http://mortenhoustonludvigsen.github.io/JsTestAdapter/CreatingATestAdapter/ 有一些很棒的示例,说明如何创建 Jasmin 测试适配器作为示例。