Neodymium Plated Magnet

    alarm-reporter

    0.1.0 • Public • Published

    alarm-reporter

    build status GitHub license node version

    NPM

    中文

    The reporter for mocha, supports send alarm message when current mocha test run failed, it's usageful for continuous integration.

    Install

    yarn add alarm-reporter --dev

    Usage

    Set the parameters of --reporter and --reporter-options to mocha in your package.json file, this is an example as follows:

    "scripts": {
        "test": "mocha path_for_test_files --timeout 99999 --reporter node_modules/alarm-reporter --reporter-options 'name=project-name,alarm=the_package_name_of_your_alarm_class'"
    },

    The alarm parameter of repoter-options is a Class, which should have the function of sendSync:

    class YourAlarm {
        /**
         * @param {object} reporterOption The parameters from the cli parameter --reporter-options
         */
        constructor(reporterOption) {
        }
        /**
         * @param {string} msg The msg you wanna send to team members
         * @returns {Error?}
         */
        sendSync(msg) {
        }
    }

    Notice that , the function name ends with Sync, you have to write synchronized code in it. This will been called in the listener of end of mocha, the listener doesn't support asynchronous operations, it will exit when all test run finished, doesn't wait for any asynchronous code, such as operation of doing HTTP requests to your notify center.

    You can write your http request code in a single js file, and then use spawnSync to make the request run in synchronized mode.

    // util.js
    const { spawnSync } = require('child_process');
    /**
     * 
     * @param {Object} option
     * @param {String} option.msg The failed msg.
     */
    exports.sendSync = function (option) {
        return spawnSync('node', ['sender.js'], {
            env: {
                ...process.env,
                msg: option.msg
            },
            cwd: __dirname,
        });
    };
    // sender.js
    
    const {msg} = process.env;
    
    // run sendin msg code...

    License

    MIT

    Install

    npm i alarm-reporter

    DownloadsWeekly Downloads

    0

    Version

    0.1.0

    License

    none

    Unpacked Size

    15.2 kB

    Total Files

    14

    Last publish

    Collaborators

    • yunnysunny