背景
- 一个很朴素的e2e需求:启动服务器,进行e2e测试,关闭服务器
- 尝试过很多方法,还是从playwright的官方配置中找到了灵感
具体
- playwright是通过spawnd来做服务器相关的进程管理的
- Spawn a process inter-dependent with parent process.
- 我差点自己手动实现了一把 child_process 这是个深坑,还好找到了现成的轮子。
- 轮子的用法
serverOptions: { command: 'npm run start', port: 3000, }, - 改良的用法 (为了复用build产物,节约cpu)
serverOptions: { command: `http-server build -P https://example.com -p 3000`, }, - 终极改良(手动实现一个简单的带proxy的node server)
serverOptions: { command: `node server.js`, },
小结
- 我想一条路在前端走到黑的啊,这个不是我该看的啊喂。