launch/shutdown Docker 容器 before/after 如何对 NodeJS 进行 mocha 测试?

How do launch/shutdown a Docker container before/after a mocha Test for NodeJS?

我们有一个依赖于外部数据库的 NodeJS 应用程序。目前,我 运行 mocha 以两种方式之一进行测试:

我想达到的目标:

能够 运行 我的测试使用 npm run testsuite 启动我的数据库容器,运行 mocha 测试并关闭容器

在调查中,我发现了很多关于如何使用 docker 或 docker-compose 在容器内 运行 进行测试的教程,但没有关于如何“仅”启动临时容器的教程仅数据库。

非常感谢帮助

我假设您可能正在使用带有 npm test 的 mocha 运行时开始测试——如果是这种情况,您可能想尝试通过直接从节点文件。

在您的包装节点文件中,您可以尝试启动容器,然后启动 Mocha。

//start container

const mocha = new Mocha();
//more config
mocha.run( ...etc )

//shut down container

像这样在你的 package.json:

中封装你的测试
{
  "scripts": {
    "test": "docker-compose up -d && mocha && docker-compose down"
  }
}

-d 标志将允许 shell 在容器启动后继续处理命令。否则 docker 容器将无限期地阻止您的 shell (和您的测试)。如果您不使用 docker 撰写,您可以随时 运行:

docker run -d

希望对您有所帮助!