Continuous integration 使用量角器设置API应用程序的最佳方法是什么?

Continuous integration 使用量角器设置API应用程序的最佳方法是什么?,continuous-integration,protractor,Continuous Integration,Protractor,我正在设置我的前端应用程序,以便在CircleCI中使用持续集成。单元测试工作正常,但端到端测试却不行 问题是,它需要后端(API)服务器运行,而我们的服务器位于另一个完全不同的应用程序中。那么,设置此后端服务器的最佳方法是什么(考虑CI) 我想把它上传到heroku上,但是我必须通过git手动更新代码。另一种选择是将代码下载到CI-VM并直接在那里运行服务器,但这项工作太多(安装ruby、postgres、gems…),而且它似乎不是最好的选择 有人经历过同样的情况吗?你们通常是如何处理这种情

我正在设置我的前端应用程序,以便在CircleCI中使用持续集成。单元测试工作正常,但端到端测试却不行

问题是,它需要后端(API)服务器运行,而我们的服务器位于另一个完全不同的应用程序中。那么,设置此后端服务器的最佳方法是什么(考虑CI)

我想把它上传到heroku上,但是我必须通过git手动更新代码。另一种选择是将代码下载到CI-VM并直接在那里运行服务器,但这项工作太多(安装ruby、postgres、gems…),而且它似乎不是最好的选择


有人经历过同样的情况吗?你们通常是如何处理这种情况的?

假设API服务器正在某个地方运行,在测试/CI环境中,将前端应用程序配置为指向那里,至少在开始时是这样。如果存在多个API环境,请选择与前端环境最匹配的环境(例如开发、登台等)


如果/当您需要在每次构建API时运行e2e测试或匹配前端和API的特定构建版本时,情况会变得更加复杂。在这种情况下,作为测试的一部分,您必须运行API服务器。

我最终完成了CI内部的所有工作。我制作了一些自定义脚本,用于在每次运行测试套件时配置后端项目。此外,我还缓存了带有后端代码和gems的文件夹(安装需要2分钟)


配置部分现在增加了约20秒的总时间,所以这不是什么大问题。虽然我仍然认为这可能不是最好的方法,但它有一些优点,比如不必担心更新后端代码(它会自动从master中提取)或其数据库(它在更新代码后运行
rake db:reset
)。

我们有一个生产和开发环境,但两者都不是很好的匹配。问题是我们需要(应该?)在测试之前重置数据库,这样我们就不用担心状态的变化。正如您所说,将服务器与测试一起运行是一种选择,我几乎确信可以这样做,但它似乎仍然是一种解决方法:(