github.com/anth0d/nomad@v0.0.0-20221214183521-ae3a0a2cad06/ui/testem.js (about)

     1  'use strict';
     2  
     3  const MultiReporter = require('testem-multi-reporter');
     4  const TapReporter = require('testem/lib/reporters/tap_reporter');
     5  const XunitReporter = require('testem/lib/reporters/xunit_reporter');
     6  const fs = require('fs');
     7  
     8  const config = {
     9    test_page: 'tests/index.html?hidepassed',
    10    disable_watching: true,
    11    launch_in_ci: ['Chrome'],
    12    launch_in_dev: ['Chrome'],
    13    browser_start_timeout: 120,
    14    parallel: -1,
    15    browser_args: {
    16      // New format in testem/master, but not in a release yet
    17      // Chrome: {
    18      //   ci: ['--headless', '--disable-gpu', '--remote-debugging-port=9222', '--window-size=1440,900'],
    19      // },
    20      Chrome: {
    21        ci: [
    22          // --no-sandbox is needed when running Chrome inside a container
    23          process.env.CI ? '--no-sandbox' : null,
    24          '--headless',
    25          '--disable-dev-shm-usage',
    26          '--disable-software-rasterizer',
    27          '--mute-audio',
    28          '--remote-debugging-port=0',
    29          '--window-size=1440,900',
    30        ].filter(Boolean),
    31      },
    32    },
    33  };
    34  
    35  if (process.env.CI) {
    36    const reporters = [
    37      {
    38        ReporterClass: TapReporter,
    39        args: [false, null, { get: () => false }],
    40      },
    41      {
    42        ReporterClass: XunitReporter,
    43        args: [
    44          false,
    45          fs.createWriteStream('/tmp/test-reports/ui.xml'),
    46          { get: () => false },
    47        ],
    48      },
    49    ];
    50  
    51    const multiReporter = new MultiReporter({ reporters });
    52  
    53    config.reporter = multiReporter;
    54  }
    55  
    56  module.exports = config;