Vue.js 中端到端 (e2e) 测试的正确方法是什么

What is a proper way of end-to-end (e2e) testing in Vue.js

因为我可以使用 selenium-standalone 和 xpath 来测试应用程序。但有时测试 SPA 可能具有挑战性。

但是,例如angularjs的团队为此提供了protractor

正如我所见,量角器背后的原因是量角器会等到 angularjs 才会加载,并且还有一些其他功能:

Protractor provides some new locator strategies and functions which are very helpful to automate the AngularJS application. Examples include things like: waitForAngular, By.binding, By.repeater, By.textarea, By.model, WebElement.all, WebElement.evaluate, etc.

所以,问题是:在 Vuejs 中进行端到端测试是否有任何工具或最佳实践?

UPD: 随时 post 链接到教程、示例以及 vue.js 中关于 e2e 测试的所有精彩内容。谢谢

您考虑的工具是Nightwatch。 有了这个,您可以使用 Vue.js.

进行 E2E 测试

更好的是,当您使用 vue-cli 时,它默认捆绑在一起,准备 运行。

创建一个默认激活 Nightwatch 的项目的命令行是 vue init webpack myProjectName

这里是 small tutorials 关于它的内容。

编辑:最近我经常使用 Webdriver.io,我必须说我更喜欢它而不是 Nightwatch(更好的文档、带有实时 gitter 的反应社区、及时处理的问题等)

我推荐使用https://devexpress.github.io/testcafe

优点:

  • 轻松安装
  • 完整的测试工具
  • javascript ES2016 与 (async/await)
  • 灵活的选择器系统
  • 具有重试策略的智能断言
  • 报告

看简单教程here

我推荐Cypress

  • 单个 NPM 依赖项
  • 开箱即用的视频录制
  • 显示测试每一步的 GUI。

我们的文档很棒:https://on.cypress.io/intro

Vue具体看这个教程:https://vuejsdevelopers.com/2018/01/29/vue-js-e2e-test-hacker-news/ and if you want to do unit testing of Vue components https://github.com/bahmutov/cypress-vue-unit-test

测试愉快。

好像是个老问题,不过2019年底最好的办法是webdriverio

优点

  1. 插件和集成的大型生态系统。

  2. 摩卡、黄瓜、茉莉花。

  3. 测试运行器的同步模式。

  4. 倾城记者等开箱

  5. 开箱即用的 Chromedriver 服务。

  6. 轻松与 selenoid 集成并在 docker 中获取浏览器集群以执行并行测试。

  7. 与devtools协议和puppeteer集成,可以使用大量的功能。

  8. 与云服务提供商集成。

  9. 开箱即用的 Appium 集成。

缺点

  1. 必须手动写入等待。

  2. 部分函数需要使用 promises。