Giter Club home page Giter Club logo

jest-html-reporters's Introduction

Jest reporter

npm NPM downloads license

English | ็ฎ€ไฝ“ไธญๆ–‡

Jest test results processor for generating a summary in HTML

Example page https://hazyzh.github.io/report.html

example picture

Installation


  # yarn
  yarn add jest-html-reporters --dev
  # npm
  npm install jest-html-reporters --save-dev

Usage


Configure Jest to process the test results by adding the following entry to the Jest config (jest.config.json):

"jest": {
  ...,
  "reporters": [
    "default",
    "jest-html-reporters"
  ],
  ...
}

As you run Jest from within the terminal, a file called jest_html_reporters.html will be created within your root folder containing information about your tests.

Available Options

The options below are specific to the reporter.

Option Name Type Default Description env variables name
publicPath string '' specify the base path JEST_HTML_REPORTERS_PUBLIC_PATH
filename string jest_html_reporters.html Filename of saved report
Applies to the generated html
JEST_HTML_REPORTERS_FILE_NAME
includeConsoleLog boolean false set true to display console logs for each test suite. NOTE: the precondition is to run Jest with --verbose=false in order to catch all logs during the tests. JEST_HTML_REPORTERS_INCLUDE_CONSOLE_LOG
darkTheme boolean false set true to generate dark theme report page JEST_HTML_REPORTERS_DARK_THEME
failureMessageOnly number 0 0 : always create report.
1 : show failure test suites messages only in Report.
2 : only create report when some test suites failed.
JEST_HTML_REPORTERS_FAILURE_MESSAGE_ONLY
inlineSource boolean false Option to save report in a single combined HTML file #184 JEST_HTML_REPORTERS_INLINE_SOURCE
pageTitle string Report specify header and page title JEST_HTML_REPORTERS_PAGE_TITLE
logoImgPath string undefined specify path of the image that will be displayed to the right of page title JEST_HTML_REPORTERS_LOGO_IMG_PATH
hideIcon boolean false hide default icon JEST_HTML_REPORTERS_HIDE_ICON
expand boolean false specify whether default expand all data JEST_HTML_REPORTERS_EXPAND
testCommand string "" copy command content to quickly run test file JEST_HTML_REPORTERS_TEST_COMMAND
openReport boolean in dev=true, rest=false options for npm package open JEST_HTML_REPORTERS_OPEN_REPORT
urlForTestFiles string '' url for test files. If user set this value, Details table shows an icon link to each rows. The link is constructed by joining urlForTestFiles and relativePath (like /src/utils/index.test.js) for each tests. See the detail in #221 JEST_HTML_REPORTERS_URL_FOR_TEST_FILES
customInfos array undefined show some custom data info in the report, example value [ {title: 'test1', value: 'test1'}, {title: 'test2', value: 'test2'}], you can also set value to a environment variable JEST_HTML_REPORTERS_CUSTOM_INFOS, see detail in #32 JEST_HTML_REPORTERS_CUSTOM_INFOS
enableMergeData boolean false for default enable merge test data feature JEST_HTML_REPORTERS_ENABLE_MERGE_DATA
dataMergeLevel number 1 default merge test data level JEST_HTML_REPORTERS_DATA_MERGE_LEVEL
env only string system default temporary directory path to a temporary folder with attachments JEST_HTML_REPORTERS_TEMP_DIR_PATH
stripSkippedTest boolean false skip the pending tests and suites in the final report JEST_HTML_REPORTERS_STRIP_SKIPPED_TEST

example add config options

...,
"reporters": [
  "default",
  ["jest-html-reporters", {
    "publicPath": "./html-report",
    "filename": "report.html",
    "openReport": true
  }]
]

some features.

  • Collapsable Test Groups

This feature regrading to #37, if a test file has many test cases, here will show a Merge Data checkbox on the expanded table. You can check it to merge data and set the merge level to control how to combine those data.

For Example merge data example

  • Attach screenshot to report

This feature regrading to #36, this package will a new method named addAttach.

interface IAddAttachParams {
    attach: string | Buffer;
    description: string | object;
    context: any;
    bufferFormat: string;
}

There are three params of this method, description is easy to understand. The param attach referring to the image, you can pass a buffer or string, if it was a buffer the package will help you create a dir named jest-html-reporters-attach and save that buffer as a jpg image in it under the publicPath. if you have already saved the image, just pass the image's path as the attach param. context is an optional parameter. Here can be specified context (default is this.global).

Here is an Example with puppeteer.

// Example attach with **buffer**
const { addAttach } = require("jest-html-reporters/helper");
const puppeteer = require("puppeteer");

describe("just examples", () => {
  test("test buffer", async () => {
    const browser = await puppeteer.launch();
    const page = await browser.newPage();
    await page.goto("https://www.google.com");
    const data = await page.screenshot();
    await browser.close();
    await addAttach({
      attach: data,
      description: 'img 1',
    });
    await addAttach({
      attach: await fs.readFileSync('./test.mp4'),
      description: 'img 1',
      bufferFormat: 'mp4',
    });
    expect(1).toBe(1);
  });
});
// Example attach with **string**
const { addAttach } = require("jest-html-reporters/helper");
const puppeteer = require("puppeteer");
const path = require("path");

describe("just examples", () => {
  test("case string", async () => {
    const filePath = path.resolve(__dirname, "./test.jpg");
    await browser.close();
    await addAttach({
      attach: filePath,
      description: 'test google 2',
    });

    await addAttach({
      attach: 'www.example.com/test.mp4',
      description: 'test video 2',
    });
    expect(1).toBe(2);
  });
});

it will show like this example

  • Attach a message to the report

This feature is in regards to #63 & #64. It allows you to add a message or log something to the html report with addMsg()

/**
 * @param {object} options - options object
 * @param {string | object} options.message - message string
 * @param {any} [options.context] - custom context (optional)
 */
const addMsg = async ({ message, context }) => { ... }

Only one parameter is required. If you pass an serializable object like, it will auth using JSON.stringify(object, null, 2) to save the object and then prettified it in report. context is an optional parameter. Here can be specified context (default is this.global).

Here is an Example with Nightmare.

const { addAttach, addMsg } = require("jest-html-reporters/helper");
const Nightmare = require("nightmare");

describe("Yet another example", () => {
  test("Both addAttach & addMsg with failure", async () => {
    const nightmare = Nightmare({ show: true });
    await addMsg({ message: { won: 1, too: 2 } });
    await nightmare.goto("https://duckduckgo.com");
    const s1 = await nightmare.screenshot();
    await addAttach(s1, "test duckduckgo 1");
    await nightmare.end();
    await addMsg({ message: JSON.stringify(process, null, 2) });
    expect(2).toEqual(1);
  }, 20000);
  test("addMsg with success", async () => {
    await addMsg({ message: JSON.stringify({ free: 3, for: 4 }, null, 2) });
    expect(2).toEqual(2);
  });
});

example

Message still displays without screenshots and with a successful test example

  • Show a link for each test file

If user set some value to urlForTestFiles, Details table shows an icon link to each rows. The link is constructed by joining urlForTestFiles (ex: https://github.com/Hazyzh/jest-html-reporters/blob/master) and relativePath (ex: /src/utils/index.test.js) for each tests.

Details Table shows an icon link to each rows.

jest-html-reporters's People

Contributors

0x90-enjoyer avatar 4ekki avatar aakti avatar aleksandrhorev avatar aruiz-caritsqa avatar codygulley avatar dependabot[bot] avatar devinea avatar enriqu3l avatar gonzobard777 avatar hazyzh avatar heiliuer avatar joaomede avatar kwonoj avatar lujb avatar marcinowski avatar neonidian avatar nissy-dev avatar oleksandr-martyniuk-deel avatar raiman264 avatar samuraitruong avatar sdfgeoff avatar sirdir avatar theeko avatar valoricde avatar warakonsantang avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

jest-html-reporters's Issues

reporter options

Describe the bug
when settings the reporter options, the result file is still created in the root of the project and named "jest_html_reporters.html

To Reproduce
Steps to reproduce the behavior:

  1. prepare a project and add the jest-html-reporters to the reporters under the jest configuration element
  2. add the following code to your package.json to configure the jest-html-reporters package
"jest-html-reporters": {
    "publicPath": "./html-report",
    "filename": "report.html"
  },
  1. execute your test

Expected behavior
the result file should be created under ./html-report and should be named report.html

Current behavior
the result file is named jest_html_reporters.html and is saved in the root folder

Additional context
i don't know if i maybe just created the config option incorrectly, but this is how i have setup this for other elements like jest-junit too, and it works correctly for them. so i wonder if something is wrong with the config options for jest-html-reporters

Add ability to show the test report in expanded format to facilitate quick search

Is your feature request related to a problem? Please describe.
Firstoff, This library is awesome ! One of my scenarios is i need to search for tests having a certain "keyword" in their name. Currently all the tests show up in collapsed format and thus invisible to page search in the browser using (Command + F on Mac e.g.)

Describe the solution you'd like

Screen Shot 2019-05-24 at 10 01 06 AM

Make the list button next to "Details" clickable, this way when someone clicks on it then all the test classname and test names show up for each of the test files. Even better would be to add a configuration option for package.json so that the result would always show up in expanded form (by default it would be off)

On a different topic - i was wondering why Skipped tests (test.skip) show up as Pending.
Or is it better to rename "Pending" to "Skipped" as Pending and skipped have slightly different meaning.

Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.

Additional context
Add any other context or screenshots about the feature request here.

History of the results?

Is your feature request related to a problem? Please describe.
New results are simply overriding the old html file

Describe the solution you'd like
It would be awesome if there is a way to keep the history of the old test suites, and accessible from the dashboard.

Describe alternatives you've considered
NA

Additional context
Lets say i ran the tests daily, and the dashboard shows the snapshot, I would like to have an option in the dashboard where I can see history of my test results. That way it will easier to navigate back to the dashboard and identify when exactly the test started to failing. Plus a dashboard of all old test results is really important from QA point of view.

Not showing Jest code coverage

Describe the bug
The way of showing reports are pretty awesome but In the report, there is no way to find the jest code coverage which is crucial for any developer.

Snapshot failures are being rendered as HTML

Describe the bug
Snapshot failures are being rendered in the error dialogs as html rather than as a String.

Expected behavior
The whole snapshot failure should be displayed as a String

Screenshots
image

Possibility to display / inline attachments below tests description

First of all, I really like your HTML reporter, great work!

Is your feature request related to a problem? Please describe.
Currently, we can view attachments by clicking the "Info" button.

Describe the solution you'd like
Would be great to have a possibility to inline / display attachments (one by one with description) after test description like below. The reason is to have everything on one page without additional actions (clicks). This can be handy in case of PDF creation or other actions that require to have all data (text and images) in place.

image

Is there a chance for that kind of improvement? Maybe some theme overrides as an alternative way? ๐Ÿ™

CI Integration with Environmental Variables

Great plugin!

Could you make it possible that I can set configurations via environment variables like you have JEST_HTML_REPORTERS_CUSTOM_INFOS?

For example, you could have:
JEST_HTML_REPORTERS_ PUBLIC_PATH
JEST_HTML_REPORTERS_ FILE_NAME
JEST_HTML_REPORTERS_ LOGO_IMAGE_PATH
etc.

I ask because we currently use a CRA (create-react-app) and they handicap all of the options we would be able to configure with jest; reporters isn't a supported configuration.

If we could get these same configs via environment variables, we could get around CRA's limitations

Collapsable Test Groups

Is your feature request related to a problem? Please describe.
I have a few test suites (*.test.[tj]s files) that have over 100 tests that are grouped with the describe function. These tests go through a sequence of steps in a workflow and check to make sure each step is done correctly. Each describe group is a different iteration of the steps.

jest-html-reporters shows these flattened out to show "description -> test". When I expand one of the files that follow that workflow, I end up with a very long list of tests that are clipped by the describe name and the test is cut off.

Describe the solution you'd like
A way to collapse test groups the same way test suites are grouped together. with an expand button.

Describe alternatives you've considered
Splitting my test into smaller chunks of files. It doesn't make a lot of logical sense to do that in my case.

Order tests by directory

Is your feature request related to a problem? Please describe.
Tests are structured per domain directory, would like to view tests by dir.

Describe the solution you'd like
Sorting reports by directory

Describe alternatives you've considered
Other reporting systems

Additional context
Add any other context or screenshots about the feature request here.

Problem with image pathfile

Describe the bug
When taking a screenshot during the tests (screenshot of the pupperteer resource), the "filePath" in save in "devMock.json" with an absolute path, causing an unknown image error when deploying the report, when sharing the folder or on moving folder.

To Reproduce
Steps to reproduce the behavior:

  1. yarn jest

Expected behavior
I expected the path to be from the location of the index.html, example: "./jest-html-reporters-attach/15933057958060.5860526400492849.jpg"

Screenshots
Captura de tela de 2020-06-27 23-28-55
Captura de tela de 2020-06-27 23-26-39

Desktop (please complete the following information):

  • OS: [Linux]
  • Browser [chrome]
  • Version [2.0.1]

Ability to expose custom text on report page

I run tests with multiple versions of SUT and it would be great to be able to see inside the report, what software version was actually tested.

I'd like to be able to run jest with some environment variable, that will be taken into account by jest-html-reporters and text from this variable would be added to report page, something like this:
image

Error on Expanding

Describe the bug
Generated some e2e tests from stenciljs, and when clicking the expand, the page has a JS error.
The test is very simple not sure what the issue might be.

Expected behavior
To expand and see the test per the documentation.

Screenshots
If applicable, add screenshots to help explain your problem.
2020-06-16 11 47 14

Desktop (please complete the following information):

  • OS: MAC OS
  • Browser Chrome
  • Version 83.0.4103.97

Add to html the image snapshots

I do the unit test is done with Puppeteer and Jest in npm.
If screenshots are taken in the tests, the report could be included in the html, for example I make screenshot in the following way:

  const image = await page.screenshot();
  expect(image).toMatchImageSnapshot();

Wrong link to this repo in src/app.js line 46

Describe the bug
The link to this repo is wrong (we are missing 's' at the end of the link)

To Reproduce
Steps to reproduce the behavior:

  1. Go to src/app.js line 46
  2. Verify link to this repo (we need to add and 's' at the end of the link)

Expected behavior
Link should be: https://github.com/Hazyzh/jest-html-reporters

Current behavior
Link: https://github.com/Hazyzh/jest-html-reporter

Screenshots
image

Desktop (please complete the following information):

  • NA

Additional context
NA

Attach screenshot on test failure

Hey! First, congrats for the project, the report looks amazing and integration was seamless with my test suites.

I saw the docs and original feature requests regarding addAttach function, but I'm having trouble to figure out how to attach the current screenshots I save when a test fails.

In my setup, I use jest-circus and I have a custom PuppeteerEnvironment which saves screenshot when a test fails. I check the event test_fn_failure to know when to take the screenshot. Just to have a notion, this is my custom environment:

class CustomEnvironment extends PuppeteerEnvironment {
  async setup() {
    await super.setup()
  }

  async teardown() {
    await this.global.page.waitFor(2000)
    await super.teardown()
  }

  async handleTestEvent(event, state) {
    if (event.name === 'test_fn_failure') {
      const testDescription = state.currentlyRunningTest.parent.name
      const testName = state.currentlyRunningTest.name
      await fse.ensureDir('e2e/screenshots')
      await this.global.page.screenshot({
        path: 'e2e/screenshots/' + toFilename(`${testDescription}-${testName}.png`),
        fullPage: true
      })
    }
  }
}

I tried adding addAttach passing the file path after the screenshot statement, but it doesn't work. In the examples from the README, I see the addAttach getting called directly in the test case. Do you have an idea of how I could make this work in my setup?

Thanks in advance!

Add custom info on test fails

I want to add custom information to my test report, like addAttach for images, I want to be able to add text.
It Will be nice to have a way to expose information to the report like console.log(my_var) but see the result in the HTML report info.

For example, I'm making a test to an API endpoint, my endpoint returns an object with a key {"result":1, ...} in my test y expect the result to be 1 but is my test fails I want to show in the report the response object, to be able to see the error cause.

Logger statements in the Reports

Is your feature request related to a problem? Please describe.
I have been using jest framework for integration testing and going to develop some 1000+ jest tests for the same. I am using jest-html-reporter for reporting. Is there anyway I can publish additional logging statements/test steps in the reports for both pass and fail test cases?

Describe the solution you'd like
I am requesting for some additional feature to print statements/steps in both passed and failed tests case, so that by looking report only one can able to analysis. Something like below :

test(Dummy Test, () => {
step("Step 1 : Connecting internet ")
step("Step 2 : Connecting to VM ")
step("Step 3 : Asserting connections details ")
expect(status).toEqual(200)
step("Test completed ")
});

Describe alternatives you've considered
If not the above solution, is there any way that I can print console.log in the report? I am using "includeConsoleLog : true" in jest.config.js and also "verbose=false" , but still I am not able to print console.log
Currently my jest.config.js looking like this :

"reporters": [
"default",
["jest-html-reporters", {
"publicPath": "./html-report",
"filename": "report.html",
"expand": true,
includeConsoleLog : true,
}]
],

Additional context
Add any other context or screenshots about the feature request here.

Build error during install caused by wrong fsevents version

Describe the bug
Installing jest-html-reporters introduces a dependency that seems to be broken.

To Reproduce
Steps to reproduce the behavior:

  1. npm install jest-html-reporters --save-dev

Expected behavior
Should install without errors.

Desktop (please complete the following information):

  • OS: macOS 10.14.6
  • Platform NodeJS
  • Version v12.12.0 (node), 6.11.3 (npm)

Additional context
So, two things are happening. First, node is trying to download from https://fsevents-binaries.s3-us-west-2.amazonaws.com/v1.2.7/fse-v1.2.7-node-v72-darwin-x64.tar.gz but that request returns a 404 because the key doesn't exist. Then node attempts compile fsevents using node-gyp which fails with a bunch of errors.

I checked the fsevents url and indeed fse-v1.2.7-node-v72-darwin-x64.tar.gz doesn't exist. If I remove the version part of the URI and go to https://fsevents-binaries.s3-us-west-2.amazonaws.com/, these version of fsevents 1.2.7 are available (note that v72 is missing):

<Contents>
<Key>v1.2.7/fse-v1.2.7-node-v48-darwin-x64.tar.gz</Key>
<LastModified>2019-01-18T15:44:16.000Z</LastModified>
<ETag>"aa0d8b6d178d9b1321c2418876f2f8fd"</ETag>
<Size>11075</Size>
<StorageClass>STANDARD</StorageClass>
</Contents>
<Contents>
<Key>v1.2.7/fse-v1.2.7-node-v51-darwin-x64.tar.gz</Key>
<LastModified>2019-01-18T15:44:04.000Z</LastModified>
<ETag>"44466507d8a808725a30f634899527a8"</ETag>
<Size>10951</Size>
<StorageClass>STANDARD</StorageClass>
</Contents>
<Contents>
<Key>v1.2.7/fse-v1.2.7-node-v57-darwin-x64.tar.gz</Key>
<LastModified>2019-01-18T15:41:32.000Z</LastModified>
<ETag>"b9d159c5230f84a433e353f6d32d4994"</ETag>
<Size>10944</Size>
<StorageClass>STANDARD</StorageClass>
</Contents>
<Contents>
<Key>v1.2.7/fse-v1.2.7-node-v59-darwin-x64.tar.gz</Key>
<LastModified>2019-01-18T15:41:13.000Z</LastModified>
<ETag>"08fdc20cd47093035699757d8aa67c39"</ETag>
<Size>11235</Size>
<StorageClass>STANDARD</StorageClass>
</Contents>
<Contents>
<Key>v1.2.7/fse-v1.2.7-node-v64-darwin-x64.tar.gz</Key>
<LastModified>2019-01-18T15:38:55.000Z</LastModified>
<ETag>"e8d59cd184a8b93ab98aae380d83daea"</ETag>
<Size>11273</Size>
<StorageClass>STANDARD</StorageClass>
</Contents>
<Contents>
<Key>v1.2.7/fse-v1.2.7-node-v67-darwin-x64.tar.gz</Key>
<LastModified>2019-01-18T15:38:35.000Z</LastModified>
<ETag>"ecc5341c8b2e5035656ff51b7073aa68"</ETag>
<Size>11257</Size>
<StorageClass>STANDARD</StorageClass>
</Contents>

So, I don't know why node is trying to fetch fsevents 1.2.7 v72. I checked out your sourcecode and did an npm install which resulted in fsevents 1.2.9 being installed.

Install log:

node-pre-gyp WARN Using request for node-pre-gyp https download
node-pre-gyp WARN Tried to download(404): https://fsevents-binaries.s3-us-west-2.amazonaws.com/v1.2.7/fse-v1.2.7-node-v72-darwin-x64.tar.gz
node-pre-gyp WARN Pre-built binaries not found for [email protected] and [email protected] (node-v72 ABI, unknown) (falling back to source compile with node-gyp)
node-pre-gyp WARN Pre-built binaries not installable for [email protected] and [email protected] (node-v72 ABI, unknown) (falling back to source compile with node-gyp)
node-pre-gyp WARN Hit error Connection closed while downloading tarball file
  SOLINK_MODULE(target) Release/.node
  SOLINK_MODULE(target) Release/.node
  CXX(target) Release/obj.target/fse/fsevents.o
  CXX(target) Release/obj.target/fse/fsevents.o
../fsevents.cc../fsevents.cc::4343::3232::  errorerror: : no template named 'Handle' in namespace 'v8'
no template named 'Handle' in namespace 'v8'
    static void Initialize(v8::Handle<v8::Object> exports);
                           ~~~~^
    static void Initialize(v8::Handle<v8::Object> exports);
                           ~~~~^
In file included from In file included from ../fsevents.cc../fsevents.cc::7373:
:
../src/constants.cc../src/constants.cc::8989::1111::  warningwarning: : 'Set''Set'  isis  deprecated:deprecated:  UseUse  maybemaybe  versionversion

            [-Wdeprecated-declarations][-Wdeprecated-declarations]

  object->Set(Nan::New<v8::String>("kFSEventStreamEventFlagNone").ToLoca...  object->Set(Nan::New<v8::String>("kFSEventStreamEventFlagNone").ToLoca...

          ^          ^

/Users/gbochmann/Library/Caches/node-gyp/12.12.0/include/node/v8.h:3402:3: note:
      /Users/gbochmann/Library/Caches/node-gyp/12.12.0/include/node/v8.h'Set': 3402has: 3been:  explicitly markednote : deprecated here

'Set' has been explicitly marked deprecated here
  V8_DEPRECATED("Use maybe version",
  ^
  V8_DEPRECATED("Use maybe version",
  ^
/Users/gbochmann/Library/Caches/node-gyp/12.12.0/include/node/v8config.h/Users/gbochmann/Library/Caches/node-gyp/12.12.0/include/node/v8config.h::311311::29:29 : note: note
:       expanded
       fromexpanded  macrofrom  'V8_DEPRECATED'macro
'V8_DEPRECATED'
  declarator __attribute__((deprecated(message)))
                            ^  declarator __attribute__((deprecated(message)))

                            ^
In file included from ../fsevents.cc:73:
../src/constants.cc:90:11: warning: 'Set' is deprecated: Use maybe version
      [-Wdeprecated-declarations]
In file included from ../fsevents.cc:73:
../src/constants.cc:90:11: warning: 'Set' is deprecated: Use   object->Set(Nan::New<v8::String>("kFSEventStreamEventFlagMustScanSubDi...maybe
 version          ^

      [-Wdeprecated-declarations]
/Users/gbochmann/Library/Caches/node-gyp/12.12.0/include/node/v8.h:3402:3: note:
      'Set' has been explicitly marked deprecated here
  object->Set(Nan::New<v8::String>("kFSEventStreamEventFlagMustScanSubDi...
  V8_DEPRECATED("Use maybe version",          ^

  ^
/Users/gbochmann/Library/Caches/node-gyp/12.12.0/include/node/v8.h:3402:/Users/gbochmann/Library/Caches/node-gyp/12.12.0/include/node/v8config.h3::311 :29:note :
note      : 'Set'
has       expandedbeen  fromexplicitly  macromarked  'V8_DEPRECATED'deprecated
here
  V8_DEPRECATED("Use maybe version",  declarator __attribute__((deprecated(message)))

  ^
                            ^
/Users/gbochmann/Library/Caches/node-gyp/12.12.0/include/node/v8config.h:311:29: note:
      expanded from macro 'V8_DEPRECATED'
  declarator __attribute__((deprecated(message)))
                            ^
In file included from ../fsevents.cc:73:
../src/constants.cc:91:11: warning: 'Set' is deprecated: Use maybe version
      [-Wdeprecated-declarations]
  object->Set(Nan::New<v8::String>("kFSEventStreamEventFlagUserDropped")...
          ^
In file included from /Users/gbochmann/Library/Caches/node-gyp/12.12.0/include/node/v8.h../fsevents.cc::340273::
3:../src/constants.cc :91:note11: :
      'Set'warning : has been 'Set'explicitly  markedis  deprecateddeprecated:  hereUse
maybe version
      [-Wdeprecated-declarations]
  V8_DEPRECATED("Use maybe version",
  ^
/Users/gbochmann/Library/Caches/node-gyp/12.12.0/include/node/v8config.h:311:29: note:
      expanded from macro 'V8_DEPRECATED'
  declarator __attribute__((deprecated(message)))  object->Set(Nan::New<v8::String>("kFSEventStreamEventFlagUserDropped")...

                            ^          ^

/Users/gbochmann/Library/Caches/node-gyp/12.12.0/include/node/v8.h:3402:3: note:
      'Set' has been explicitly marked deprecated here
  V8_DEPRECATED("Use maybe version",
  ^
/Users/gbochmann/Library/Caches/node-gyp/12.12.0/include/node/v8config.h:311:29: note:
      expanded from macro 'V8_DEPRECATED'
  declarator __attribute__((deprecated(message)))
                            ^
In file included from ../fsevents.cc:73:
../src/constants.cc:92:11: warning: 'Set' is deprecated: Use maybe version
      [-Wdeprecated-declarations]
  object->Set(Nan::New<v8::String>("kFSEventStreamEventFlagKernelDropped...
          ^
/Users/gbochmann/Library/Caches/node-gyp/12.12.0/include/node/v8.h:3402:3: note:
      'Set' has been explicitly marked deprecated here
  V8_DEPRECATED("Use maybe version",
  ^
/Users/gbochmann/Library/Caches/node-gyp/12.12.0/include/node/v8config.h:311:29: note:
      expanded from macro 'V8_DEPRECATED'
  declarator __attribute__((deprecated(message)))
                            ^
In file included from ../fsevents.cc:73:
../src/constants.cc:92:11: warning: 'Set' is deprecated: Use maybe version
      [-Wdeprecated-declarations]
  object->Set(Nan::New<v8::String>("kFSEventStreamEventFlagKernelDropped...
          ^
/Users/gbochmann/Library/Caches/node-gyp/12.12.0/include/node/v8.h:3402:3: note:
      'Set' has been explicitly marked deprecated here
  V8_DEPRECATED("Use maybe version",
  ^
/Users/gbochmann/Library/Caches/node-gyp/12.12.0/include/node/v8config.h:311:29: note:
      expanded from macro 'V8_DEPRECATED'
  declarator __attribute__((deprecated(message)))
                            ^
In file included from ../fsevents.cc:73:
../src/constants.cc:93:11: warning: 'Set' is deprecated: Use maybe version
      [-Wdeprecated-declarations]
  object->Set(Nan::New<v8::String>("kFSEventStreamEventFlagEventIdsWrapp...
          ^
/Users/gbochmann/Library/Caches/node-gyp/12.12.0/include/node/v8.h:3402:3: note:
      'Set' has been explicitly marked deprecated here
  V8_DEPRECATED("Use maybe version",
  ^
/Users/gbochmann/Library/Caches/node-gyp/12.12.0/include/node/v8config.h:311:29: note:
      expanded from macro 'V8_DEPRECATED'
  declarator __attribute__((deprecated(message)))
                            ^
In file included from ../fsevents.cc:73:
../src/constants.cc:93:11: warning: 'Set' is deprecated: Use maybe version
      [-Wdeprecated-declarations]
  object->Set(Nan::New<v8::String>("kFSEventStreamEventFlagEventIdsWrapp...
          ^
/Users/gbochmann/Library/Caches/node-gyp/12.12.0/include/node/v8.h:3402:3: note:
      'Set' has been explicitly marked deprecated here
  V8_DEPRECATED("Use maybe version",
  ^
/Users/gbochmann/Library/Caches/node-gyp/12.12.0/include/node/v8config.h:311:29: note: In file included from ../fsevents.cc
:      73expanded:
 from../src/constants.cc :macro94 :'V8_DEPRECATED'11:
 warning: 'Set' is deprecated: Use maybe version
      [-Wdeprecated-declarations]
  declarator __attribute__((deprecated(message)))
                            ^
  object->Set(Nan::New<v8::String>("kFSEventStreamEventFlagHistoryDone")...
          ^
/Users/gbochmann/Library/Caches/node-gyp/12.12.0/include/node/v8.h:3402:3: note:
      'Set' has been explicitly marked deprecated here
  V8_DEPRECATED("Use maybe version",
  ^
/Users/gbochmann/Library/Caches/node-gyp/12.12.0/include/node/v8config.h:311:29: note:
      expanded from macro 'V8_DEPRECATED'
  declarator __attribute__((deprecated(message)))
                            ^
In file included from ../fsevents.cc:73:
../src/constants.cc:94:11: warning: 'Set'In file included from  ../fsevents.ccis: 73deprecated::
 Use../src/constants.cc :maybe95 :version11
:      [-Wdeprecated-declarations]
warning: 'Set' is deprecated: Use maybe version
      [-Wdeprecated-declarations]
  object->Set(Nan::New<v8::String>("kFSEventStreamEventFlagHistoryDone")...
          ^
/Users/gbochmann/Library/Caches/node-gyp/12.12.0/include/node/v8.h:3402:3:   object->Set(Nan::New<v8::String>("kFSEventStreamEventFlagRootChanged")...
note          ^:

      'Set' has/Users/gbochmann/Library/Caches/node-gyp/12.12.0/include/node/v8.h :been3402 :explicitly3 :marked  deprecated notehere:

      'Set' has been explicitly marked   V8_DEPRECATED("Use maybe version",deprecated
 here  ^

/Users/gbochmann/Library/Caches/node-gyp/12.12.0/include/node/v8config.h:311:  V8_DEPRECATED("Use maybe version",29
:   ^
note:
      expanded/Users/gbochmann/Library/Caches/node-gyp/12.12.0/include/node/v8config.h :from311 :macro29 :'V8_DEPRECATED'
note:
      expanded from macro 'V8_DEPRECATED'
  declarator __attribute__((deprecated(message)))
                            ^
  declarator __attribute__((deprecated(message)))
                            ^
In file included from ../fsevents.cc:73:
../src/constants.cc:96:11: warning: 'Set' is deprecated: Use maybe version
      [-Wdeprecated-declarations]
In file included from ../fsevents.cc  object->Set(Nan::New<v8::String>("kFSEventStreamEventFlagMount").ToLoc...:
73:
          ^
../src/constants.cc:95:11/Users/gbochmann/Library/Caches/node-gyp/12.12.0/include/node/v8.h:: 3402:3: warning: note: 'Set'
       is'Set'  deprecated:has  Usebeen  explicitlymaybe  markedversion deprecated
       here[-Wdeprecated-declarations]

  V8_DEPRECATED("Use maybe version",
  ^
/Users/gbochmann/Library/Caches/node-gyp/12.12.0/include/node/v8config.h:311:29: note:
      expanded from macro 'V8_DEPRECATED'
  object->Set(Nan::New<v8::String>("kFSEventStreamEventFlagRootChanged")...
          ^
  declarator __attribute__((deprecated(message)))
                            ^
/Users/gbochmann/Library/Caches/node-gyp/12.12.0/include/node/v8.h:3402:3: note:
      'Set' has been explicitly marked deprecated here
  V8_DEPRECATED("Use maybe version",
  ^
/Users/gbochmann/Library/Caches/node-gyp/12.12.0/include/node/v8config.h:311:29: note:
      expanded from macro 'V8_DEPRECATED'
  declarator __attribute__((deprecated(message)))
                            ^
In file included from ../fsevents.cc:73:
../src/constants.cc:97:11: warning: 'Set' is deprecated: Use maybe version
      [-Wdeprecated-declarations]
  object->Set(Nan::New<v8::String>("kFSEventStreamEventFlagUnmount").ToL...
          ^
/Users/gbochmann/Library/Caches/node-gyp/12.12.0/include/node/v8.h:3402:3: note:
      'Set' has been explicitly marked deprecated here
  V8_DEPRECATED("Use maybe version",
  ^
/Users/gbochmann/Library/Caches/node-gyp/12.12.0/include/node/v8config.h:311:29: note:
      expanded from macro 'V8_DEPRECATED'
  declarator __attribute__((deprecated(message)))
                            ^
In file included from ../fsevents.cc:73:
../src/constants.cc:96:11: warning: 'Set' is deprecated: Use maybe version
      [-Wdeprecated-declarations]
  object->Set(Nan::New<v8::String>("kFSEventStreamEventFlagMount").ToLoc...
          ^
/Users/gbochmann/Library/Caches/node-gyp/12.12.0/include/node/v8.h:3402:3: note:
      'Set' has been explicitly marked deprecated here
  V8_DEPRECATED("Use maybe version",
  ^
/Users/gbochmann/Library/Caches/node-gyp/12.12.0/include/node/v8config.h:311:29: note:
      expanded from macro 'V8_DEPRECATED'
  declarator __attribute__((deprecated(message)))
                            ^
In file included from ../fsevents.cc:73:
../src/constants.cc:98:11: warning: 'Set' is deprecated: Use maybe version
      [-Wdeprecated-declarations]
  object->Set(Nan::New<v8::String>("kFSEventStreamEventFlagItemCreated")...
          ^
/Users/gbochmann/Library/Caches/node-gyp/12.12.0/include/node/v8.h:3402:3: note:
      'Set' has been explicitly marked deprecated here
  V8_DEPRECATED("Use maybe version",
In file included from   ^../fsevents.cc
:73:
../src/constants.cc:/Users/gbochmann/Library/Caches/node-gyp/12.12.0/include/node/v8config.h97::31111::29 : warning: note: 'Set'
       isexpanded  deprecated:from  Usemacro maybe  'V8_DEPRECATED'version

      [-Wdeprecated-declarations]
  declarator __attribute__((deprecated(message)))
                            ^
  object->Set(Nan::New<v8::String>("kFSEventStreamEventFlagUnmount").ToL...
          ^
/Users/gbochmann/Library/Caches/node-gyp/12.12.0/include/node/v8.h:3402:3: note:
      'Set' has been explicitly marked deprecated here
  V8_DEPRECATED("Use maybe version",
  ^
/Users/gbochmann/Library/Caches/node-gyp/12.12.0/include/node/v8config.h:311:29: note:
      expanded from macro 'V8_DEPRECATED'
  declarator __attribute__((deprecated(message)))
                            ^
In file included from ../fsevents.cc:73:
../src/constants.cc:99:11: warning: 'Set' is deprecated: Use maybe version
      [-Wdeprecated-declarations]
In file included from ../fsevents.cc:  object->Set(Nan::New<v8::String>("kFSEventStreamEventFlagItemRemoved")...73
:
../src/constants.cc          ^:
98:11: warning/Users/gbochmann/Library/Caches/node-gyp/12.12.0/include/node/v8.h: :3402:'Set'3 :is  deprecated: noteUse:  maybe
version
'Set'       [-Wdeprecated-declarations]has
been explicitly marked deprecated here
  V8_DEPRECATED("Use maybe version",
  ^
/Users/gbochmann/Library/Caches/node-gyp/12.12.0/include/node/v8config.h:311:29: note  object->Set(Nan::New<v8::String>("kFSEventStreamEventFlagItemCreated")...:

          ^
expanded from macro 'V8_DEPRECATED'/Users/gbochmann/Library/Caches/node-gyp/12.12.0/include/node/v8.h
:3402:3: note:
      'Set'   declarator __attribute__((deprecated(message)))has
 been                            ^
explicitly marked deprecated here
  V8_DEPRECATED("Use maybe version",
  ^
/Users/gbochmann/Library/Caches/node-gyp/12.12.0/include/node/v8config.h:311:29: note:
      expanded from macro 'V8_DEPRECATED'
  declarator __attribute__((deprecated(message)))
                            ^
In file included from ../fsevents.cc:73:
../src/constants.cc:100:11: warning: 'Set' In file included from is ../fsevents.ccdeprecated:: 73Use:
 maybe ../src/constants.ccversion:
99      :[-Wdeprecated-declarations]11:
 warning: 'Set' is deprecated: Use maybe version
      [-Wdeprecated-declarations]
  object->Set(Nan::New<v8::String>("kFSEventStreamEventFlagItemInodeMeta...
          ^
/Users/gbochmann/Library/Caches/node-gyp/12.12.0/include/node/v8.h:3402:3: note:
      'Set' has been explicitly marked  object->Set(Nan::New<v8::String>("kFSEventStreamEventFlagItemRemoved")...
deprecated here          ^

/Users/gbochmann/Library/Caches/node-gyp/12.12.0/include/node/v8.h:3402:3  V8_DEPRECATED("Use maybe version",:
   ^
note:
      'Set'/Users/gbochmann/Library/Caches/node-gyp/12.12.0/include/node/v8config.h :has311 :been29 :explicitly  marked notedeprecated:  here
      expanded
 from macro 'V8_DEPRECATED'
  V8_DEPRECATED("Use maybe version",
  declarator __attribute__((deprecated(message)))
  ^
                            ^
/Users/gbochmann/Library/Caches/node-gyp/12.12.0/include/node/v8config.h:311:29: note:
      expanded from macro 'V8_DEPRECATED'
  declarator __attribute__((deprecated(message)))
                            ^
In file included from ../fsevents.cc:73:
../src/constants.cc:101:11: warning: 'Set' is deprecated: Use maybe version
      [-Wdeprecated-declarations]
In file included from ../fsevents.cc:73:
../src/constants.cc:100:11: warning:   object->Set(Nan::New<v8::String>("kFSEventStreamEventFlagItemRenamed")...
'Set'          ^
is deprecated: Use maybe/Users/gbochmann/Library/Caches/node-gyp/12.12.0/include/node/v8.h :version3402:
3      :[-Wdeprecated-declarations]
note:
      'Set' has been explicitly marked deprecated here
  V8_DEPRECATED("Use maybe version",
  ^
/Users/gbochmann/Library/Caches/node-gyp/12.12.0/include/node/v8config.h:311:29:   object->Set(Nan::New<v8::String>("kFSEventStreamEventFlagItemInodeMeta...
note:           ^

      expanded from macro /Users/gbochmann/Library/Caches/node-gyp/12.12.0/include/node/v8.h'V8_DEPRECATED':3402
:3: note:
      'Set' has been  declarator __attribute__((deprecated(message)))
explicitly                             ^marked
 deprecated here
  V8_DEPRECATED("Use maybe version",
  ^
/Users/gbochmann/Library/Caches/node-gyp/12.12.0/include/node/v8config.h:311:29: note:
      expanded from macro 'V8_DEPRECATED'
  declarator __attribute__((deprecated(message)))
                            ^
In file included from ../fsevents.cc:73:
../src/constants.cc:102:11: warning: 'Set' is deprecated: Use maybe version
      [-Wdeprecated-declarations]
  object->Set(Nan::New<v8::String>("kFSEventStreamEventFlagItemModified"...
          ^
/Users/gbochmann/Library/Caches/node-gyp/12.12.0/include/node/v8.h:3402:3: note:
      'Set' has been explicitly marked deprecated here
In file included from ../fsevents.cc:73:
../src/constants.cc  V8_DEPRECATED("Use maybe version",:
101:  ^11
: warning/Users/gbochmann/Library/Caches/node-gyp/12.12.0/include/node/v8config.h: :311:29'Set':  is notedeprecated::  Use
       maybeexpanded  fromversion macro
       'V8_DEPRECATED'[-Wdeprecated-declarations]

  declarator __attribute__((deprecated(message)))
                            ^
  object->Set(Nan::New<v8::String>("kFSEventStreamEventFlagItemRenamed")...
          ^
/Users/gbochmann/Library/Caches/node-gyp/12.12.0/include/node/v8.h:3402:3: note:
      'Set' has been explicitly marked deprecated here
  V8_DEPRECATED("Use maybe version",
  ^
/Users/gbochmann/Library/Caches/node-gyp/12.12.0/include/node/v8config.h:311:29: note:
      expanded from macro 'V8_DEPRECATED'
  declarator __attribute__((deprecated(message)))
                            ^
In file included from ../fsevents.cc:73:
../src/constants.cc:103:11: warning: 'Set' is deprecated: Use maybe version
      [-Wdeprecated-declarations]
  object->Set(Nan::New<v8::String>("kFSEventStreamEventFlagItemFinderInf...
          ^
/Users/gbochmann/Library/Caches/node-gyp/12.12.0/include/node/v8.h:3402:3: note:
      'Set' has been explicitly marked deprecated here
  V8_DEPRECATED("Use maybe version",
  ^
/Users/gbochmann/Library/Caches/node-gyp/12.12.0/include/node/v8config.h:311:29: note:
      expanded from macro 'V8_DEPRECATED'
  declarator __attribute__((deprecated(message)))In file included from
../fsevents.cc:                            ^73
:
../src/constants.cc:102:11: warning: 'Set' is deprecated: Use maybe version
      [-Wdeprecated-declarations]
  object->Set(Nan::New<v8::String>("kFSEventStreamEventFlagItemModified"...
          ^
/Users/gbochmann/Library/Caches/node-gyp/12.12.0/include/node/v8.h:3402:3: note:
      'Set' has been explicitly marked deprecated here
  V8_DEPRECATED("Use maybe version",
  ^
/Users/gbochmann/Library/Caches/node-gyp/12.12.0/include/node/v8config.h:311:29: note:
      expanded from macro 'V8_DEPRECATED'
  declarator __attribute__((deprecated(message)))
                            ^
In file included from ../fsevents.cc:73:
../src/constants.cc:104:11: warning: 'Set' is deprecated: Use maybe version
      [-Wdeprecated-declarations]
  object->Set(Nan::New<v8::String>("kFSEventStreamEventFlagItemChangeOwn...
          ^
/Users/gbochmann/Library/Caches/node-gyp/12.12.0/include/node/v8.h:3402:3: note:
      'Set' has been explicitly marked deprecated here
  V8_DEPRECATED("Use maybe version",
  ^
/Users/gbochmann/Library/Caches/node-gyp/12.12.0/include/node/v8config.h:311:29: note:
      expanded from macro 'V8_DEPRECATED'
  declarator __attribute__((deprecated(message)))
In file included from                             ^
../fsevents.cc:73:
../src/constants.cc:103:11: warning: 'Set' is deprecated: Use maybe version
      [-Wdeprecated-declarations]
  object->Set(Nan::New<v8::String>("kFSEventStreamEventFlagItemFinderInf...
          ^
/Users/gbochmann/Library/Caches/node-gyp/12.12.0/include/node/v8.h:3402:3: note:
      'Set' has been explicitly marked deprecated here
  V8_DEPRECATED("Use maybe version",
  ^
/Users/gbochmann/Library/Caches/node-gyp/12.12.0/include/node/v8config.h:311:29: note:
      expanded from macro 'V8_DEPRECATED'
  declarator __attribute__((deprecated(message)))
                            ^
In file included from ../fsevents.cc:73:
../src/constants.cc:105:11: warning: 'Set' is deprecated: Use maybe version
      [-Wdeprecated-declarations]
  object->Set(Nan::New<v8::String>("kFSEventStreamEventFlagItemXattrMod"...
          ^
/Users/gbochmann/Library/Caches/node-gyp/12.12.0/include/node/v8.h:3402:3: note:
      'Set' has been explicitly marked deprecated here
  V8_DEPRECATED("Use maybe version",
  ^
/Users/gbochmann/Library/Caches/node-gyp/12.12.0/include/node/v8config.h:311:29: note:
      expanded from macro 'V8_DEPRECATED'
In file included from ../fsevents.cc:73:
  declarator __attribute__((deprecated(message)))../src/constants.cc
:104                            ^:11
: warning: 'Set' is deprecated: Use maybe version
      [-Wdeprecated-declarations]
  object->Set(Nan::New<v8::String>("kFSEventStreamEventFlagItemChangeOwn...
          ^
/Users/gbochmann/Library/Caches/node-gyp/12.12.0/include/node/v8.h:3402:3: note:
      'Set' has been explicitly marked deprecated here
  V8_DEPRECATED("Use maybe version",
  ^
/Users/gbochmann/Library/Caches/node-gyp/12.12.0/include/node/v8config.h:311:29: note:
      expanded from macro 'V8_DEPRECATED'
  declarator __attribute__((deprecated(message)))
                            ^
In file included from ../fsevents.cc:73:
../src/constants.cc:106:11: warning: 'Set' is deprecated: Use maybe version
      [-Wdeprecated-declarations]
  object->Set(Nan::New<v8::String>("kFSEventStreamEventFlagItemIsFile")....
          ^
/Users/gbochmann/Library/Caches/node-gyp/12.12.0/include/node/v8.h:3402:3: note:
      'Set' has been explicitly marked deprecated here
  V8_DEPRECATED("Use maybe version",
  ^
/Users/gbochmann/Library/Caches/node-gyp/12.12.0/include/node/v8config.h:311:29: note:
      expanded from macro 'V8_DEPRECATED'
  declarator __attribute__((deprecated(message)))
                            ^
In file included from ../fsevents.cc:73:
../src/constants.cc:105:11: warning: 'Set' is deprecated: Use maybe version
      [-Wdeprecated-declarations]
  object->Set(Nan::New<v8::String>("kFSEventStreamEventFlagItemXattrMod"...
          ^
/Users/gbochmann/Library/Caches/node-gyp/12.12.0/include/node/v8.h:3402:3: note:
      'Set' has been explicitly marked deprecated here
  V8_DEPRECATED("Use maybe version",
  ^
/Users/gbochmann/Library/Caches/node-gyp/12.12.0/include/node/v8config.h:311:29: note:
      expanded from macro 'V8_DEPRECATED'
  declarator __attribute__((deprecated(message)))
                            ^
In file included from ../fsevents.cc:73:
../src/constants.cc:107:11: warning: 'Set' is deprecated: Use maybe version
      [-Wdeprecated-declarations]
  object->Set(Nan::New<v8::String>("kFSEventStreamEventFlagItemIsDir").T...
          ^
/Users/gbochmann/Library/Caches/node-gyp/12.12.0/include/node/v8.h:3402:3: note:
      'Set' has been explicitly marked deprecated here
  V8_DEPRECATED("Use maybe version",
  ^
/Users/gbochmann/Library/Caches/node-gyp/12.12.0/include/node/v8config.h:311:29: note:
      expanded from macro 'V8_DEPRECATED'
  declarator __attribute__((deprecated(message)))
                            ^
In file included from ../fsevents.cc:73:
../src/constants.cc:106:11: warning: 'Set' is deprecated: Use maybe version
      [-Wdeprecated-declarations]
  object->Set(Nan::New<v8::String>("kFSEventStreamEventFlagItemIsFile")....
          ^
/Users/gbochmann/Library/Caches/node-gyp/12.12.0/include/node/v8.h:3402:3: note:
      'Set' has been explicitly marked deprecated here
  V8_DEPRECATED("Use maybe version",
  ^
/Users/gbochmann/Library/Caches/node-gyp/12.12.0/include/node/v8config.h:311:29: note:
      expanded from macro 'V8_DEPRECATED'
  declarator __attribute__((deprecated(message)))
                            ^
In file included from ../fsevents.cc:73:
../src/constants.cc:108:11: warning: 'Set' is deprecated: Use maybe version
      [-Wdeprecated-declarations]
  object->Set(Nan::New<v8::String>("kFSEventStreamEventFlagItemIsSymlink...
          ^
/Users/gbochmann/Library/Caches/node-gyp/12.12.0/include/node/v8.h:3402:3: note:
      'Set' has been explicitly marked deprecated here
  V8_DEPRECATED("Use maybe version",
  ^
/Users/gbochmann/Library/Caches/node-gyp/12.12.0/include/node/v8config.h:311:29: note:
      expanded from macro 'V8_DEPRECATED'
  declarator __attribute__((deprecated(message)))
                            ^
In file included from ../fsevents.cc:73:
../src/constants.cc:107:11: warning: 'Set' is deprecated: Use maybe version
      [-Wdeprecated-declarations]
  object->Set(Nan::New<v8::String>("kFSEventStreamEventFlagItemIsDir").T...
          ^
/Users/gbochmann/Library/Caches/node-gyp/12.12.0/include/node/v8.h:3402:3: note:
      'Set' has been explicitly marked deprecated here
  V8_DEPRECATED("Use maybe version",
  ^
/Users/gbochmann/Library/Caches/node-gyp/12.12.0/include/node/v8config.h:311:29: note:
      expanded from macro 'V8_DEPRECATED'
  declarator __attribute__((deprecated(message)))
                            ^
In file included from ../fsevents.cc:73:
../src/constants.cc:108:11: warning: 'Set' is deprecated: Use maybe version
      [-Wdeprecated-declarations]
  object->Set(Nan::New<v8::String>("kFSEventStreamEventFlagItemIsSymlink...
          ^
/Users/gbochmann/Library/Caches/node-gyp/12.12.0/include/node/v8.h:3402:3: note:
      'Set' has been explicitly marked deprecated here
  V8_DEPRECATED("Use maybe version",
  ^
/Users/gbochmann/Library/Caches/node-gyp/12.12.0/include/node/v8config.h:311:29: note:
      expanded from macro 'V8_DEPRECATED'
  declarator __attribute__((deprecated(message)))
                            ^
../fsevents.cc../fsevents.cc::7676::1616::  errorerror: : variablevariable  hashas  incompleteincomplete  typetype  'void''void'

void FSEvents::Initialize(v8::Handle<v8::Object> exports) {void FSEvents::Initialize(v8::Handle<v8::Object> exports) {

               ^               ^

../fsevents.cc:76:31: error: no member named 'Handle' in namespace 'v8'
void FSEvents::Initialize(v8::Handle<v8::Object> exports) {
                          ~~~~^
../fsevents.cc:76:31: error: no member named 'Handle' in namespace 'v8'
void FSEvents::Initialize(v8::Handle<v8::Object> exports) {
                          ~~~~^
../fsevents.cc:76:48:../fsevents.cc :76:error48: : expectederror : '(' for function-styleexpected cast  '(' foror  function-styletype
cast       constructionor
type
      construction
void FSEvents::Initialize(v8::Handle<v8::Object> exports) {
                                     ~~~~~~~~~~^
void FSEvents::Initialize(v8::Handle<v8::Object> exports) {
                                     ~~~~~~~~~~^
../fsevents.cc../fsevents.cc::7676::5050::  errorerror: : useuse  ofof  undeclaredundeclared  identifieridentifier  'exports''exports'

void FSEvents::Initialize(v8::Handle<v8::Object> exports) {void FSEvents::Initialize(v8::Handle<v8::Object> exports) {

                                                 ^                                                 ^

../fsevents.cc:76:58: error: ../fsevents.ccexpected: 76';': 58after:  top levelerror : declarator
expected ';' after top level declarator
void FSEvents::Initialize(v8::Handle<v8::Object> exports) {
                                                         ^
                                                         ;
void FSEvents::Initialize(v8::Handle<v8::Object> exports) {
                                                         ^
                                                         ;
20 warnings and 6 errors generated.
20 warnings and 6 errors generated.
make: make: *** [Release/obj.target/fse/fsevents.o] Error 1*** [Release/obj.target/fse/fsevents.o] Error 1

gypgyp  ERR!ERR!  build errorbuild error

gypgyp  ERR!ERR!  stackstack Error: `make` failed with exit code: 2
 Error: `make` failed with exit code: 2
gypgyp  ERR!ERR!  stackstack     at ChildProcess.onExit (/Users/gbochmann/.nvm/versions/node/v12.12.0/lib/node_modules/npm/node_modules/node-gyp/lib/build.js:196:23)
     at ChildProcess.onExit (/Users/gbochmann/.nvm/versions/node/v12.12.0/lib/node_modules/npm/node_modules/node-gyp/lib/build.js:196:23)
gypgyp  ERR!ERR!  stackstack     at ChildProcess.emit (events.js:210:5)
     at ChildProcess.emit (events.js:210:5)
gypgyp  ERR!ERR!  stackstack     at Process.ChildProcess._handle.onexit (internal/child_process.js:272:12)
     at Process.ChildProcess._handle.onexit (internal/child_process.js:272:12)
gypgyp  ERR!ERR!  SystemSystem Darwin 18.7.0
 Darwin 18.7.0
gypgyp  ERR!ERR!  commandcommand "/Users/gbochmann/.nvm/versions/node/v12.12.0/bin/node" "/Users/gbochmann/.nvm/versions/node/v12.12.0/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "build" "--fallback-to-build" "--module=/Users/gbochmann/dev/sfcc/app-page-designer/node_modules/fsevents/lib/binding/Release/node-v72-darwin-x64/fse.node" "--module_name=fse" "--module_path=/Users/gbochmann/dev/sfcc/app-page-designer/node_modules/fsevents/lib/binding/Release/node-v72-darwin-x64" "--napi_version=5" "--node_abi_napi=napi"
 "/Users/gbochmann/.nvm/versions/node/v12.12.0/bin/node" "/Users/gbochmann/.nvm/versions/node/v12.12.0/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "build" "--fallback-to-build" "--module=/Users/gbochmann/dev/sfcc/app-page-designer/node_modules/fsevents/lib/binding/Release/node-v72-darwin-x64/fse.node" "--module_name=fse" "--module_path=/Users/gbochmann/dev/sfcc/app-page-designer/node_modules/fsevents/lib/binding/Release/node-v72-darwin-x64" "--napi_version=5" "--node_abi_napi=napi"
gypgyp  ERR!ERR!  cwdcwd /Users/gbochmann/dev/sfcc/app-page-designer/node_modules/fsevents
 /Users/gbochmann/dev/sfcc/app-page-designer/node_modules/fsevents
gypgyp  ERR!ERR!  node -vnode -v v12.12.0
 v12.12.0
gypgyp  ERR!ERR!  node-gyp -vnode-gyp -v v5.0.3
 v5.0.3
gypgyp  ERR!ERR!  not oknot ok

node-pre-gyp ERR! build error
node-pre-gyp ERR! stack Error: Failed to execute '/Users/gbochmann/.nvm/versions/node/v12.12.0/bin/node /Users/gbochmann/.nvm/versions/node/v12.12.0/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js build --fallback-to-build --module=/Users/gbochmann/dev/sfcc/app-page-designer/node_modules/fsevents/lib/binding/Release/node-v72-darwin-x64/fse.node --module_name=fse --module_path=/Users/gbochmann/dev/sfcc/app-page-designer/node_modules/fsevents/lib/binding/Release/node-v72-darwin-x64 --napi_version=5 --node_abi_napi=napi' (1)
node-pre-gyp ERR! stack     at ChildProcess.<anonymous> (/Users/gbochmann/dev/sfcc/app-page-designer/node_modules/fsevents/node_modules/node-pre-gyp/lib/util/compile.js:83:29)
node-pre-gyp ERR! stack     at ChildProcess.emit (events.js:210:5)
node-pre-gyp ERR! stack     at maybeClose (internal/child_process.js:1021:16)
node-pre-gyp ERR! stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:283:5)
node-pre-gyp ERR! System Darwin 18.7.0
node-pre-gyp ERR! command "/Users/gbochmann/.nvm/versions/node/v12.12.0/bin/node" "/Users/gbochmann/dev/sfcc/app-page-designer/node_modules/fsevents/node_modules/node-pre-gyp/bin/node-pre-gyp" "install" "--fallback-to-build"
node-pre-gyp ERR! cwd /Users/gbochmann/dev/sfcc/app-page-designer/node_modules/fsevents
node-pre-gyp ERR! node -v v12.12.0
node-pre-gyp ERR! node-pre-gyp -v v0.10.3
node-pre-gyp ERR! not ok
Failed to execute '/Users/gbochmann/.nvm/versions/node/v12.12.0/bin/node /Users/gbochmann/.nvm/versions/node/v12.12.0/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js build --fallback-to-build --module=/Users/gbochmann/dev/sfcc/app-page-designer/node_modules/fsevents/lib/binding/Release/node-v72-darwin-x64/fse.node --module_name=fse --module_path=/Users/gbochmann/dev/sfcc/app-page-designer/node_modules/fsevents/lib/binding/Release/node-v72-darwin-x64 --napi_version=5 --node_abi_napi=napi' (1)
npm WARN @iamstarkov/[email protected] requires a peer of listr@^0.14.2 but none is installed. You must install peer dependencies yourself.
npm WARN [email protected] requires a peer of @angular/core@^6.0.0 but none is installed. You must install peer dependencies yourself.
npm WARN [email protected] requires a peer of @ngrx/effects@^6.0.0 but none is installed. You must install peer dependencies yourself.
npm WARN [email protected] requires a peer of @ngrx/store@^6.0.0 but none is installed. You must install peer dependencies yourself.
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: [email protected] (node_modules/fsevents):
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: [email protected] install: `node install`
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: Exit status 1

+ [email protected]
added 1 package from 1 contributor in 32.375s

Support adding video recording in 'addAttach'

I'm trying to add a video recording of the test using the library playwright-video. This works great, but when I'm adding this recording to the page using addAttach I always end up with a <img> tag in the resulting html .

Describe the solution you'd like
I would like to request a feature that based on given file extension it will create a <video> element or <img> element in the resulting html. Another option would be to implement new function e.g. attachVideo()

Configurable command to run specific test

Is your feature request related to a problem? Please describe.
I want to use custom command to run a test instead of a default one that is npx jest .... For example yarn test ....

Describe the solution you'd like
Add a config option to set the command.

Layout of the report is different

I was wondering, is the example screenshot of jest-html-reports tweaked, or am I missing configuration settings? I was thinking to get the charts/collapse items. Now I get the image bellow.

My reporters section:

"reporters": [
        "default",
        [
            "jest-html-reporters", 
            {
                "outputPath": "docs/reports/unit.html",
                "pageTitle": "MexonInControl - Backend - Unit tests",
                "expand": true
            }
        ]
    ]

image

keep the colorized display of differences

On the command line the differences appear as colorized revision marks. In the html report these marks are absent. It is not a simple question of css: there are no html tags which materialize these differences.
Can you provide an option to keep these marks in the html.

Custom header/title for report

It would be a good addition to provide a way to add a report header. Right now it has an empty header with GitHub link. I think the icon should also be optional.

Add option to attach screenshot

Is your feature request related to a problem? Please describe.
The reporter is really good but I miss the option to add an screenshot or any other support file if something fails or to clarify the test report.
Describe the solution you'd like
reporter.currentTest.attach(file);
Where file an be image or text.

1.x todos:

  • add bottom information

  • add filter option of the main table

  • generate html

  • when jumping to a Test Suite, expand the Test automatically. (_use Context API _ )

  • Add save path option on config

  • click test title can copy content to clipboard

  • update readme

  • setup auto deploy file

  • write an article to introduce this plugin

  • add some test for this repo

  • use a new way to import antd icon module to reduce the bundle size

Report is not generated when there is only one 'test' within two nested 'describe'

Describe the bug
Report is not generated when there is only one 'test' within two nested 'describe'

To Reproduce
Steps to reproduce the behavior:
Run the following test:

describe("top describe", () => {
  describe("inner describe", () => {
    test("Test name", async () => {
      expect(1).toBeTruthy();
    });
  });
});

As a result, report is not created.

Expected behavior
Report is created

Desktop (please complete the following information):

  • OS: windows 10
  • Browser: -
  • Version: 1.16.0

Additional context
Issue doesn't reproduce when 'inner describe' is removed or another test is added on the same level, as original one,

Handle Uncreated Directories

Describe the bug
jest-html-reporters should handle uncreated directories.

To Reproduce
Steps to reproduce the behavior:

  1. Set filename to an uncreated path (eg: ./coverage/report.html)
  2. Run the test jest
  3. Error: Error: ENOENT: no such file or directory, open '/.../coverage/report. html'

Expected behavior
jest-html-reporters handles uncreated directories

Screenshots
If applicable, add screenshots to help explain your problem.

Desktop (please complete the following information):

  • OS: MacOS
  • Version: jest-html-reporters v1.1.8

Create one html from multiple test results

Is your feature request related to a problem? Please describe.
We are currently using this plugin in Jenkins, the issue we are running into is that we are creating reports with different test names and archiving them. It would be nice to be able to create a single test report from after merging different test results.

  1. The source could be results in json format (created by jest)
  2. The output is one html file containing merged result

Describe the solution you'd like
Already described above

Changing the file path to any label

Hi,

The report looks awesome. Thanks for the solution.

In the report, I would like to change the File Path ("E:\Applications\test\sample.test.ts") to some other label like "Sample Test". Or is it possible to replace the complete path with only the file name -> 'sample.test.ts'

image

Thanks in advance

Cannot see attached screenshots to html

Screenshots are added to jest-html-reporters-attach directory, seems to be in hidden text area in html but cannot see any attached to specific failed test report.

Use jest + playwright
piece of code

```async handleTestEvent(event) {
    if (event.name === 'test_done' && event.test.errors.length > 0) {
        const specName = event.test.name.replace(/\W/g, '-');
        const browser = await this.global.browserName;
        const img = await this.global.page.screenshot({
            path: `e2e/output/screenshots/onFail/${browser}_${specName}.png`,
        });
        await addAttach(img, `${browser}_${specName}`);
    }
}```

I use playwright_environment

That can't support *.feature ???

Hello,

I just run detox for react native mobile by cucumber
But I have problem to generate report by jest-html-reporters

We can run *.feature ?

[Question] dinamic name to report filename

Hi guys! Sorry if it isnยดt the right way to do the question, but I have the following doubt:

Iยดm executing my script in a CI system (Jenkins) that select the browsers to launch, from there I injected a env. variable with the browsers selected to the script, then I want to generate one report for each browser but for example with the name... chromium-report.html, firefox-report.html, env.variable-report.html... something like that
Someone know any way to do that?
and also... someone know how to merge to html reports?

Thanks in advance

Don't remove AttachDir by default

Is your feature request related to a problem? Please describe.
I want to keep the history of screenshots attached to jest-html-reporters-attach dir. But every time the test runs, the folder is removed.

Describe the solution you'd like
Stop removing jest-html-reporters-attach dir by default.

Describe alternatives you've considered
Add a configuration option to allow this.

Getting Periodic Updates to the report.html file and auto refresh in the browser

Need:
Currently when tests are run, the report file is only generated once all the tests are completed. this means the user doesn't get to watch the progress in a browser window.

Describe the solution you'd like

  1. Add a process to update the html file on a more frequent basis. i.e. maybe at the end of every test suite
  2. add functionality in the HTML to auto refresh the page whenever the underlying file is modified.

Additional context
Angular uses websockets to detect files changes that result in automatic reload. something similar could be done here.

PS: This current report looks wonderul. kudos.

customInfos - doesn't work when a json string is assigned to JEST_HTML_REPORTERS_CUSTOM_INFOS

Describe the bug
customInfos - - doesn't work when the Key/Value Pairs object is stringified and assigned to process.env.JEST_HTML_REPORTERS_CUSTOM_INFOS in the globalSetup

To Reproduce
Steps to reproduce the behavior:

  1. In the js for globalSetup, create a json object and assign it - viz.
const mycustInfo = { 'Environment':'dev',  'Browser':'chrome'  };
process.env.JEST_HTML_REPORTERS_CUSTOM_INFOS = JSON.stringify(mycustInfo);

and specify this in package.json:
"customInfos" : "JEST_HTML_REPORTERS_CUSTOM_INFOS"

  1. Once the test is executed, the following warning message is displayed in console log:
    the value of Custom info env must be a json string point to an Object

  2. However, when the customInfos is specified directly in package json as below, it works as expected:
    ``"customInfos" : [{ title: "Environment", value: "dev" }, { title: "Browser", value: "chrome" }]`

Expected behavior
Dynamically constructing the customInfos object as specified in #1 is expected to work as in #3.

Screenshots
If applicable, add screenshots to help explain your problem.

Desktop (please complete the following information):

  • OS: Mac iOS13
  • Browser: Chrome/Firefox/Safari
  • Version: package versions 2.1.0 and above

Additional context
REF: #32 for the original feature request and impl.. of JEST_HTML_REPORTERS_CUSTOM_INFOS

Adjusting

const infos = JSON.parse(JEST_HTML_REPORTERS_CUSTOM_INFOS);
` to
const infos = JSON.parse(customInfos); fixes the issue

Test name is not encoded properly, breaking HTML UI

Describe the bug

I implement the XSS feature and have couple of test to that the logic, When I added those test, it will break the HTML report

To Reproduce
Steps to reproduce the behavior:

  1. have the test with below
    it('should not allow when body has <script\x20type="text/javascript">javascript:alert(1);</script>' , () => {}
  2. View the summary page
  3. HTML view will error and display alert(1) like below
    image

Expected behavior
It should encoded the test title and render HTML page properly

Screenshots
If applicable, add screenshots to help explain your problem.

Desktop (please complete the following information):

  • OS: MACOS
  • Browser Chrome
  • Version 84.0.4147.89

Additional context
Add any other context about the problem here.

Running multiple test suites in parallel cause an error

Describe the bug
There are some projects that are capable of running multiple test suites on parallel and this reporter throws an error when running in parallel.

To Reproduce
Steps to reproduce the behavior:

  1. Download https://github.com/alfredoperez/nrwl-jest-html-reporters
  2. Instal dependencies
  3. Run nx run-many --all --target=test --skip-nx-cache --parallel
  4. Throws the following error
[Error: ENOENT: no such file or directory, scandir './temp/data'] {
  errno: -2,
  code: 'ENOENT',
  syscall: 'scandir',
  path: './temp/data'
}
[jest-html-reporters]: parse attach failed!
๐Ÿ“ฆ reporter is created on: /Users/aperez/dev/personal/nrwl-jest-html-reporters/jest-report/apps/portal/report.html

Expected behavior
It should be able to run without throwing errors

Screenshots
image

Additional context
NX is a tool to create a mono repo and it allows us to create multiple apps/libs that can run its own test suite on parallel.

I am also interested in a resolution for the issue about having a single HTML for multiple reports since it is common in monorepos to have multiple reports

#12

CI Integration

First of all, this is an awesome report. I really loved it.

But I have a question. I'm sorry for asking this here.

It is possible to integrate this report with CI (Jenkins, etc.)?

If it's not possible, is there any plans for it?

Collapsable Test Groups

Is your feature request related to a problem? Please describe.
I have a few test suites (*.test.[tj]s files) that have over 100 tests that are grouped with the describe function. These tests go through a sequence of steps in a workflow and check to make sure each step is done correctly. Each describe group is a different iteration of the steps.

jest-html-reporters shows these flattened out to show "description -> test". When I expand one of the files that follow that workflow, I end up with a very long list of tests that are clipped by the describe name and the test is cut off.

Describe the solution you'd like
A way to collapse test groups the same way test suites are grouped together. with an expand button.

Describe alternatives you've considered
Splitting my test into smaller chunks of files. It doesn't make a lot of logical sense to do that in my case.

corrupted report with some test names

Describe the bug
jest-report.html is corrupted and cannot be displayed in the browser if some test includes on its name the $'character sequence.

To Reproduce
1 .jest simple.test.js (see code below)
2. open jest-report.html in the broswer
-> The following error is thrown:

Uncaught SyntaxError: JSON.parse: bad character in string literal at line 1 column 1259 of the JSON data
    <anonymous> file:///home/alostale/ws/projects/react/openbravo/test-reports/jest-report.html:118
    <anonymous> file:///home/alostale/ws/projects/react/openbravo/test-reports/jest-report.html:118
    o file:///home/alostale/ws/projects/react/openbravo/test-reports/jest-report.html:61
    <anonymous> file:///home/alostale/ws/projects/react/openbravo/test-reports/jest-report.html:118
    o file:///home/alostale/ws/projects/react/openbravo/test-reports/jest-report.html:61
    <anonymous> file:///home/alostale/ws/projects/react/openbravo/test-reports/jest-report.html:61
    <anonymous> file:///home/alostale/ws/projects/react/openbravo/test-reports/jest-report.html:61

simple.test.js

it("Cannot generate report with '1.00 $'", () => expect(true).toBe(true));

Expected behavior
jest-report.html should be correctly rendered in the browser.

Desktop (please complete the following information):

  • OS: Linux 5.4 Ubuntu 18.04.5 LTS (Bionic Beaver)
  • Browser: tested on chrome and firefox
  • Version: 2.1.2

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.