通过访问在浏览器中运行测试时localhost:4200/tests
,测试能够访问测试服务器 API。
但是,在 CI 模式下运行测试时(使用 testem),它们无法访问测试服务器 API。
有没有办法做到这一点?
细节
在使用 ember-cli 生成的项目中,您可以扩展它运行的服务器(NodeJs with Express)。请参阅 中的说明/server/index.js
。运行此命令后:
ember serve
...此服务器在localhost:4200
. 我已经这样做了,创建了一个服务器来响应localhost:4200/api
在浏览应用程序时提供的所有 API 请求。
当我访问localhost:4200/tests
在浏览器中运行的测试时,他们能够访问这些 API,并且运行没有任何问题。
但是,当我终止服务器并以 CI 模式 (testem) 运行测试时,使用以下命令:
ember test
... ember 应用程序使用 PhantomJs 在无头模式下运行,但该应用程序无法访问 API,导致大多数测试失败。
即使我在开始运行测试时让服务器保持运行,也会发生同样的事情。
我知道在测试本身中模拟 API 请求是惯例,起诉诸如 Sinon 或 mockjax 之类的东西。但是,这会重复我在测试服务器中已有的内容,我想避免这种情况。有没有办法让测试在 CI 模式下运行(使用 testem),并且可以访问我的测试服务器?