【问题标题】:Parallel Build steps in Team CityTeam City 中的并行构建步骤
【发布时间】:2021-04-27 03:56:27
【问题描述】:

我是 Team City 的新手,我的任务是创建 CI 构建。

我尝试构建的是一个带有量角器 e2e 测试的 angular2 应用程序。

Team City 中的所有其他构建步骤都运行正常,但我在尝试运行进行 e2e 测试的步骤时遇到问题。

如果我要在本地执行此操作,我会打开一个 cmd 窗口并输入...

npm run start

然后我会打开另一个命令窗口并输入...

npm run e2e 

如何在 Team City 中运行并行步骤?

【问题讨论】:

    标签: npm teamcity angular


    【解决方案1】:

    构建步骤不能在 TeamCity 中并行运行。您需要做的是创建一个在后台运行“npm run start”的脚本,然后运行“npm run e2e”。您可以使用命令行运行器来运行脚本

    【讨论】:

    • 是的,我尝试创建添加一个可以执行此操作的 npm 脚本,但它只是在运行服务器后挂起.. "serve-e2e": "npm run server:dev & npm run e2e",
    • 命令“npm run server:dev”不会在后台运行服务器。它启动服务器并等待命令返回,这永远不会发生。您需要使用npmjs.com/package/forever 等工具在后台运行服务器。
    • 你知道如何/是否可以直接使用它来启动 npm 命令npm run server:dev,因为它看起来会触发 js 脚本forever start app.js,抱歉在这里看起来很愚蠢。
    • 我不知道确切的解决方案,但是这个对 SO 问题 stackoverflow.com/a/33424241/256776 的回答和这个 github 讨论 github.com/foreverjs/forever/issues/540 可能有一些想法
    【解决方案2】:

    我仍然无法让永远的东西为我正常工作,所以我创建了自己的节点脚本来启动 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');
    });
    

    【讨论】:

      猜你喜欢
      • 2011-12-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-02-18
      • 2017-10-21
      • 1970-01-01
      相关资源
      最近更新 更多