【问题标题】:Run MochaJS before start node server automated在自动启动节点服务器之前运行 MochaJS
【发布时间】:2016-11-09 02:23:41
【问题描述】:

我是 Mocha.js 的新手,但我做了一些测试用例,我想在我的服务器自动启动之前运行这些测试。

例如: npm 开始 然后所有 Mocha 的测试运行,如果通过,则服务器启动,否则服务器停止。

我正在使用 Jenkins 进行自动部署

【问题讨论】:

    标签: node.js express jenkins mocha.js


    【解决方案1】:

    你在测试你的服务器吗?

    如果是这样,您应该使用 beforeafter 函数来处理服务器生命周期,如下所示:

    var server = require('../my/lib/server');
    
    describe('My server test suite', function () {
      before(function () {
        server.listen(8080);
      });
    
      it('should do my test', function(done){
        //my test
      });
    
      after(function () {
        server.close();
      });
    }); 
    

    将你的 mocha 执行放在 npm 的 package.json 的测试任务中,例如:

    "scripts": {
        "test": "node ./node_modules/.bin/mocha --globals '*'"
    }
    

    然后您可以在 Execute shell 构建步骤下的 server-test 作业中运行 npm install && npm test

    那么,如果您想部署经过测试的版本,您应该:

    • 创建另一个作业(例如:server-deploy)。
    • 在您的 server-test 作业中安装并使用Parametrized Trigger plugin 来触发/调用其他项目的构建作为构建后步骤。
    • 在您的项目中添加forever npm 模块
    • server-deploy 作业上,使用 forever + dontKillMe 标志在 Jenkins 作业完成后保持进程运行,如下所示:

    BUILD_ID=dontKillMe forever start myserver.js

    PS:使用BUILD_ID=dontKillme的解释是here

    【讨论】:

    • 你不能只在 package.json 中使用 prestart 吗?真的很好奇这样更好吗?
    猜你喜欢
    • 2020-11-17
    • 1970-01-01
    • 2018-04-05
    • 1970-01-01
    • 2015-06-28
    • 2013-05-09
    • 2013-11-15
    • 1970-01-01
    • 2018-01-14
    相关资源
    最近更新 更多