我对Team City还比较陌生,现在的任务是创建一个CI构建。
我要构建的是一个带有Protractor端到端测试的Angular2应用程序。
Team City中的所有其他构建步骤都运行良好,但我在尝试运行执行e2e测试的步骤时遇到了问题。
如果我想在本地运行这个步骤,我会打开一个cmd窗口并输入...
npm run start
我会打开另一个命令窗口并键入...
npm run e2e
如何在Team City中运行并行步骤?
在TeamCity中,构建步骤无法并行运行。您需要创建一个脚本,在后台运行“npm run start”,然后运行“npm run e2e”。您可以使用命令行运行器来运行该脚本。
我仍然无法使永久性的事情对我正常工作,所以我创建了自己的节点脚本,启动 live-server,然后执行 npm run e2e。这似乎解决了问题,谢谢 Oleg 的帮助。
最终我是这样做的...
const exec = require('child_process').exec;
var psTree = require('ps-tree');
const server = exec('live-server ./dist --port=3000 --no-browser');
const tests = exec('npm run e2e');
tests.stdout.on('data', function(data) {
console.log(data);
});
tests.stderr.on('data', function(data) {
console.log(data);
});
tests.on('close', function(code) {
console.log('closing code: ' + code);
exec('taskkill /PID ' + server.pid + ' /T /F');
});
npm run server:dev
,因为它似乎会触发js脚本forever start app.js
,抱歉在这里看起来有些愚蠢。 - dazziep