使用赛普拉斯,我可以轻松测试我的dev子域名。我有一个角度/反应应用程序,当我创建dist
(包括index.html
)时,我想对构建的文件运行赛普拉斯测试。
很遗憾,在开始赛普拉斯测试之前,我不知道如何提供dist
文件夹(如serve
npm
包)。
我知道我可以在另一个终端选项卡上提供index.html
,但这不会发生在CircleCi(我的CI)上。
在开始实际测试之前,赛普拉斯是否可以替换localhost并提供静态文件?
答案 0 :(得分:1)
我使用browser-sync
启动分发静态文件的服务器。
您需要安装3个软件包:cypress
(显然),browser-sync
启动服务器,npm-run-all
连续启动服务器和cypress。
npm install --save-dev cypress
npm install --save-dev browser-sync
npm install --save-dev npm-run-all
以下是您需要在package.json
中添加的npm脚本配置示例。不要忘记自定义包含SPA路径的<port>
(例如:4000)和<folder>
(例如:公开)。
{
"scripts": {
"cypress": "cypress run",
"server": "browser-sync start --port <port> --server <folder> --no-open",
"test": "run-p -r server cypress"
}
}
现在你必须编写第一个Hello world
测试:
describe('My App', function() {
it('is up', function() {
cy.visit('http://localhost:4000');
cy.contains('Hello world!');
});
});
那就是它!我们可以启动测试:
npm test
答案 1 :(得分:0)
我做了以下事情:
我安装了
npm i serve
并添加了
serve: "serve -s <build-folder>"
到我的package.json
。然后在你的travis.yml你添加
- npm run serve &
- npm test
命令末尾的&
将使其在后端运行,因此测试可以在其后运行。由于serve
非常快速地为静态文件提供服务,因此npm test
无需等待任何AND,因此大多数CI环境正在清理后您不必担心会停止npm run serve
测试完成后自动进行后台处理。
上面的大部分信息也可以找到here。