失败的e2e测试通过Teamcity中的构建

时间:2016-03-07 11:43:56

标签: protractor teamcity angular angularjs-e2e

我们最近刚刚通过升级节点版本杀死了Teamcity(ooops)中的所有e2e测试。

我确信这是我们能够解决的问题,但它突出显示Teamcity设置不正确(或其他东西是错过的)。

正如我所说的所有测试都失败但是构建步骤只是说它以代码0退出并继续成功构建。

[15:53:13][Step 4/6] 51 specs, 51 failures
[15:53:13][Step 4/6] Finished in 106.981 seconds
[15:53:13][Step 4/6] 
[15:53:13][Step 4/6] closing code: null
[15:53:13][Step 4/6] Process exited with code 0

我们正在使用量角器进行测试,并在构建步骤中使用命令行运行程序运行它们。

npm run teamcity-e2e

很抱歉,如果这很模糊,但希望这对某人有意义,他们可以指出我正确的方向:)

欢呼声..

- 经过更多调查后编辑 -

我现在知道问题出在我创建的节点脚本(teamcity-e2e.js)......

const exec = require('child_process').exec;

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');
});

虽然我不知道问题是什么,所以在帮助之后请任何人;)

1 个答案:

答案 0 :(得分:2)

太棒了我已经修好了它:)

快速而简单的答案是我的节点脚本实际上没有返回退出代码DOH :)

这是我的固定解决方案......

const exec = require('child_process').exec;

const server = exec('npm run server:test');
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');
  process.exit(code); //here's the bad boy ;)
});