ran*_*mor 5 testing angularjs protractor
我有一个运行在localhost:8000的API项目连接到测试数据库,我有一个在localhost:9000运行的前端角应用程序.在每个前端测试用例运行后如何重置数据库?我正在使用Protractor进行前端E2E测试.我不想嘲笑整个后端.虽然这会使我的测试运行得更快,但是,每次用户交互都会导致对服务器状态的更改,然后是对同一服务器端点的更多请求,在不同点处以不同的返回方式存根这些端点可能代码太多而不仅仅是说话到真正的服务器.我宁愿将数据库重置为初始状态或刷新所有表.
一种可能的方法是在我的API项目中编写我的前端E2E测试套件.从现在起它由后端测试运行器运行,它可以在每个测试用例之前轻松重置数据库.但我宁愿将我的测试保留在我的前端项目中,因为我的api也将服务于其他客户端,而不仅仅是浏览器客户端.由于我的后端是在PHP中并使用Phpunit进行测试,而我使用Protractor测试我的前端,将它集成到后端似乎有点错位.
你遇到过这个问题,你的解决方案是什么?如何协调E2E(或集成?)测试中的两个项目?
在客户端路线失败后,我在 API 项目中编写了所有 E2E 测试。权衡:
API 拥有可用于引导测试用例的所有工厂和模型。如果仅从客户端进行测试,我必须重新创建模型关系和工厂才能使其正常工作,并且必须跟踪 API 模型的所有更改。
每次运行 E2E 测试之前,我都必须手动设置客户端以与测试 api 环境对话。并手动将 api 服务器设置为测试模式。因为您需要让实际的 API Web 服务器在某个地方运行,以便客户端可以访问。
目前仍然很难找到一种方法将这个非常定制的测试设置移动到云端,从而与持续集成服务器集成,因为客户端和 api 是两个独立的项目。但我终于在本地计算机上运行了一些客户端 E2E 测试,这比没有测试要好。
| 归档时间: |
|
| 查看次数: |
659 次 |
| 最近记录: |