如何使用nodemon调试应用程序并测试手表

问题描述

我正在使用docker-compose执行的nestJS项目。由docker-compose运行的许多容器中,有一个容器,其中应用程序使用nodemon运行(如果需要,允许我对其进行调试),另一个容器中,当检测到代码更改时执行单元测试。

是否可以在同一个容器上执行应用程序并对代码更改运行单元测试?这是好习惯吗?这将使我的机器执行得更快,因为整个容器集占用了大量资源,并且只有一个容器可以运行应用程序并即时运行单元测试,这会让我删除仅用于单元测试的容器。 / p>

nodemon配置文件是这样的:

{
  "watch": ["src"],"ext": "ts,json","ignore": ["src/**/*.spec.ts"],"exec": "nest build && node --inspect=0.0.0.0 ./dist/main.js"
}

第二个容器中的单元测试使用jest --watch执行。

解决方法

我正在使用一个容器来运行应用程序和执行测试。我认为没有问题。由于我使用sqlite3进行e2e测试,因此我的Dockerfile如下所示:

FROM node:12.18.1

RUN apt-get update \
    && apt-get install sqlite3 \

docker-compose.yml中,我对该节点容器的命令是:

command: npm run start:debug-remote

因为为什么不这样。此npm命令为:

"start:debug-remote": "nest start --debug 0.0.0.0:9229 --watch"

为了使调试器正常工作,您必须在docker-compose.yml(或Dockerfile)中公开此端口(9229),并在.vscode/launch.json配置中进行设置。