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
。
编辑:最近我经常使用 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:
优点:
插件和集成的大型生态系统。
摩卡、黄瓜、茉莉花。
测试运行器的同步模式。
倾城记者等开箱
开箱即用的 Chromedriver 服务。
轻松与 selenoid 集成并在 docker 中获取浏览器集群以执行并行测试。
与devtools协议和puppeteer集成,可以使用大量的功能。
与云服务提供商集成。
开箱即用的 Appium 集成。
缺点:
必须手动写入等待。
部分函数需要使用 promises。
因为我可以使用 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
。
编辑:最近我经常使用 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:
优点:
插件和集成的大型生态系统。
摩卡、黄瓜、茉莉花。
测试运行器的同步模式。
倾城记者等开箱
开箱即用的 Chromedriver 服务。
轻松与 selenoid 集成并在 docker 中获取浏览器集群以执行并行测试。
与devtools协议和puppeteer集成,可以使用大量的功能。
与云服务提供商集成。
开箱即用的 Appium 集成。
缺点:
必须手动写入等待。
部分函数需要使用 promises。