launch/shutdown Docker 容器 before/after 如何对 NodeJS 进行 mocha 测试?
How do launch/shutdown a Docker container before/after a mocha Test for NodeJS?
我们有一个依赖于外部数据库的 NodeJS 应用程序。目前,我 运行 mocha 以两种方式之一进行测试:
- 手动启动 docker 容器,运行 测试,关闭容器
- 使用 github 操作进行合并(服务很有魅力)
我想达到的目标:
能够 运行 我的测试使用 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
希望对您有所帮助!
我们有一个依赖于外部数据库的 NodeJS 应用程序。目前,我 运行 mocha 以两种方式之一进行测试:
- 手动启动 docker 容器,运行 测试,关闭容器
- 使用 github 操作进行合并(服务很有魅力)
我想达到的目标:
能够 运行 我的测试使用 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
希望对您有所帮助!