我想编写一个grunt任务,它将启动一个服务器,并根据该服务器运行一些测试:
grunt.initConfig({
shell: {
sbtRun: {
options: {
stdout: true
},
command: './sbt run'
}
}
});
grunt.loadNpmTasks('grunt-shell');
grunt.registerTask('run-test-only', ...);
grunt.registerTask('start-server-and-test', ['shell:sbtRun', 'run-test-only']);
但问题是,任务./sbt run
没有在守护进程中运行。我跑的时候:
grunt start-server-and-test
它将永远阻止shell:sbtRun
任务。
有没有办法在子进程中启动它?那么第二个任务run-test-only
将被调用,服务器将在测试后自动销毁?
答案 0 :(得分:0)
我遇到了类似的问题。我想连接到数据库并将查询结果存储在.csv中。我创建了一个单独的文件来完成所有工作,我使用以下命令行成功运行该文件:
node filename.js
我使用grunt-shell和grunt-exec来运行此命令,但每次我看到同样的错误:
const child = require('child_process').exec;
然后,我找到了另一个grunt插件,即grunt-execute,它能够创建一个子进程并且任务已成功完成。你可以在这里找到更多关于grunt-execute的信息,https://www.npmjs.com/package/grunt-execute。
希望这有帮助。