这是我的问题,我想创建一个自动运行测试的 CLI。没有 CLI,我可以使用 Node 命令完美地运行所有内容:
node test.js
基本上,我想做与之前的命令完全相同的事情,所以我在谷歌上搜索了一种可以做到这一点的技术。我发现了这个:
#!/usr/bin/env node
'use strict';
const options = process.argv;
const { execFile } = require('child_process');
const child = execFile('node', ['../dist/test.js'], (error, stdout, stderr) => {
if (error) {
throw error;
}
console.log(stdout);
});
此方法对我不起作用,因为在 test.js
文件中,我使用 ora包裹。由于此包正在制作实时动画,因此它不会出现在 stdout
中。
有什么方法可以使用 Node 实时执行(没有子进程)我的 test.js
吗?我对其他方法持开放态度,但我想在 NPM 上发布 CLI,因此请记住它必须是 JavaScript 😊。
您可以找到我在 GitHub 上讨论过的每个文件。通常,您不需要此链接,但如果您需要仔细查看,我会将其提供给您。
最佳答案
在需要定义它的模块之后,您应该简单地从 CLI 代码中调用您的 test()
函数。看看 mocha 和 jasmine:您会发现,虽然这两个工具都提供了 CLI,但它们还提供了从任意 JS 代码调用测试框架的说明。
关于javascript - 在另一个 NodeJS 进程中执行 JS 文件(带有日志等),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46508767/