在对cypress js进行测试之前提供SPA服务

Ale*_*lex 6 npm circleci cypress

使用赛普拉斯,我可以轻松地测试我的dev子域.我有一个角度/反应应用程序,当我创建dist(包括index.html)时,我想对构建的文件运行赛普拉斯测试.

不幸的是,在开始赛普拉斯测试之前,我不知道如何提供dist文件夹(比如servenpm).

我知道我可以index.html在另一个终端选项卡上提供服务,但这不会发生在CircleCi(我的CI)上.

无论如何,在开始实际测试之前,赛普拉斯是否可以替换localhost并提供静态文件?

tzi*_*tzi 2

我曾经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
Run Code Online (Sandbox Code Playgroud)

下面是一个 npm 脚本配置示例,您需要将其添加到您的package.json. 不要忘记自定义<port>(例如:4000)并且<folder>其中包含 SPA 的路径(例如:公共)。

{
  "scripts": {
    "cypress": "cypress run",
    "server": "browser-sync start --port <port> --server <folder> --no-open",
    "test": "run-p -r server cypress"
  }
}
Run Code Online (Sandbox Code Playgroud)

现在您必须编写第一个Hello world测试:

describe('My App', function() {
    it('is up', function() {
        cy.visit('http://localhost:4000');

        cy.contains('Hello world!');
    });
});
Run Code Online (Sandbox Code Playgroud)

就是这样!我们可以启动我们的测试:

npm test
Run Code Online (Sandbox Code Playgroud)