npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

jest-allure2-adapter

v0.3.12

Published

Allure 2 Adapter for jest

Downloads

22,087

Readme

Jest-Allure-2 reporting plugin

Originally forked from jest-allure.

Add more power to your tests using Jest-Allure. Easily generate nice reports at the end of the execution.

Awesome License: MIT PRs Welcome

GitHub followers GitHub stars GitHub watchers

Table of Contents

  1. Examples
  2. Installation
  3. Cofiguration
  4. How to get a report
  5. Advanced features
  6. What's next
  7. Feature Notes
  8. Releases

Examples

  • todo

Allure Report

Allure Framework is a flexible lightweight multi-language test report tool that not only shows a very concise representation of what have been tested in a neat web report form, but allows everyone participating in the development process to extract maximum of useful information from everyday execution of tests.

Installation

yarn add -D jest-allure2-adapter

or

npm install --save-dev jest-allure2-adapter

jest -v >24 ?

Then add jest-allure2-adapter/dist/setup-default to setupFilesAfterEnv section of your config.

setupFilesAfterEnv: ["jest-allure2-adapter/dist/setup-default"]

jest -v < 24 ?

add reporter to jest.config.js

reporters: ["default", "jest-allure2-adapter"],

Run tests. Results will be generated and stored in allure-results folder.


Cofiguration

Object of the following type can be added into registerAllureReporter as first argument.

  resultsDir?: string;
  stepTimestamp?: boolean;
  addStepStatusDetailsAttachment?: boolean; // add attachment with step status details
  tmsLink?: (id: string) => string;
  issueLink?: (id: string) => string;

How to get a report

You need to install the CLI in order to obtain a report.

For example see allure-commandline.

To see a report in browser, run in console

allure serve

If you want to generate html version, run in console

allure generate

Advanced features

You can add description, screenshots, steps, severity and lots of other fancy stuff to your reports.

Global variable reporter available in your tests with such methods:

    test: AllureCurrentApi; // actions for current test

      startGroup(name: string): void;
      startTest(spec: jasmine_.CustomReporterResult): void;
      startStep(name: string, start?: number): AllureStep;
      stepStatus(status: Status, details?: StatusDetails | any): void;
      step<T>(
        name: string,
        body?: (step: StepInterface) => T,
        start?: number,
        ...args: any[]
      ): any;
      endStep(
        status?: Status,
        stage?: Stage,
        details?: StatusDetails | any,
        end?: number,
      ): void;
      endTest(spec: jasmine_.CustomReporterResult): void;
      endGroup(): void;

      writeCategories(categories: Category[]): void;
      addEnvironment(name: string, value: string): this;

      logStep(name: string, status: Status, attachments?: [Attachment]): void;

      attachment(name: string, content: Buffer | string, type?: ContentType): void;
      addParameter(name: string, value: string): this;
      addParameters(...params: [string, any][]): this;

      description(description: string): this; // sets description to current executable (test / step)
      descriptionHtml(description: string): this; // sets description to current executable (test / step)
      addDescription(description: string): void; // adds html description to test

      setFullName(fullName: string): void;
      setHistoryId(uid: string): void;

      addPackage(value: string): this;
      addLink(options: { name?: string; url: string; type?: LinkType }): this;
      addIssue(options: { id: string; name?: string; url?: string }): this;
      addTms(options: { id: string; name?: string; url?: string }): this;
      addLabel(name: string, value: string): this;
      feature(feature: string): void;
      story(story: string): void;
      tag(tag: string): void;
      owner(owner: string): void;
      lead(lead: string): void;
      framework(framework: string): void;
      language(language: string): void;
      as_id(id: string): void;
      host(host: string): void;
      testClass(testClass: string): void;
      testMethod(testMethod: string): void;
      severity(severity: Severity): void;

Custrom Jasmine reporter

To use custom jasmine reporter - for example to add smth into allure when spec or suite started you can use custom jasmine reporter. In this case you do NOT need to add jest-allure2-adapter/dist/setup-default into SetupFilesAfterEnv section. Just call registerAllureReporter with yur custom jasmine reporter.

see example:

// jest.setup.ts
...
setupFilesAfterEnv: [
    './config/jest-custom-reporter.ts',
  ],
...
// jest-custom-reporter.ts

import {
  AllureReporterApi,
  jasmine_,
  registerAllureReporter,
} from 'jest-allure2-adapter';

class JasmineAllureReporter implements jasmine_.CustomReporter {
  private allure: AllureReporterApi;

  constructor(allure: AllureReporterApi) {
    this.allure = allure;
  }

  suiteStarted(suite?: jasmine_.CustomReporterResult) {
    this.allure.startGroup(suite.description);
    // some actions here on suite started
  }

  suiteDone() {
    // some actions here on suite end
    this.allure.endGroup();
  }

  specStarted(spec: jasmine_.CustomReporterResult) {
    this.allure.startTest(spec);
    // some actions here on test started
  }

  specDone(spec: jasmine_.CustomReporterResult) {
    // some actions here on spec end
    this.allure.endTest(spec);
  }
}

registerAllureReporter(
  undefined,
  (allure) => new JasmineAllureReporter(allure),
);

Example (todo)

import { Severity } from "jest-allure/dist/Reporter";
import { Feature } from "somwhere in your project";

describe("Fancy test", () => {
        ...

        it("Test your amazing feature", async () => {
            reporter
                .description("Feature should work cool")
                .severity(Severity.Critical)
                .feature(Feature.Betting)
                .story("BOND-007");

            reporter.startStep("Check it's fancy");
            // expect that it's fancy
            reporter.endStep();

            reporter.startStep("Check it's cool");
            // expect that it's cool
            reporter.endStep();

            const screenshotBuffer = await page.screenshot();
            reporter.addAttachment("Screenshot", screenshotBuffer, "image/png");
        });

        ...
    }
);

What's next

  • [x] Ability to implement own JasmineAllureReporter (0.2.16)
  • [ ] Add before/after hooks
  • [ ] Add examples
  • [x] Ability to config (timestamp to step, jira link) (0.2.53)
  • [x] historyId (group retries)
  • [ ] Add param to stepStatus to add attachment with details or not
  • [ ] Cleanup statusDetails

Warning

jest-allure2-adapter reporter dynamically configure "setupTestFrameworkScriptFile" option in Jest configuration. If you have your own setupTestFrameworkScriptFile file, you need to manually register allure reporter, for it you need to import jest-allure/dist/setup-default.

import 'jest-allure2-adapter/dist/setup-default';

In case if you have jest version > 24 just add jest-allure/dist/setup-default to setupFilesAfterEnv section of your config.

Feature Notes

Setting feature, story to all tests in file

As far as describe is async setting feature/story under describe or in any other place in the file except test will add feature/story to all tests in this file (feature/story can be overridden in test)

Todo: add example

Releases

0.3.11:

  • Original Date.now is used in case if you mock Date.now in tests
  • added start and stop time to startTest, endTest

0.3.8:

  • added isTestActive for reporter

0.3.7:

  • framework label = 'jest' to tests by default (can be overridden)
  • language label = 'typescript/javascript' to tests by default (can be overridden)
  • host label to tests by default (can be overridden)
  • ability to setup historyId and fullName
  • added autoHistoryId into config (when false need to setup historyId manually to have correct retries, by default it is true and historyId is being generated from spec full name)

0.3.5:

  • fixed grouping into retries

0.3.0:

  • added ability to configure reporter:
    • resultsDir: where allure results are stored, default allure-results
    • stepTimestamp: add timestamp to step or not, false by default
    • addStepStatusDetailsAttachment: add step status details attachment (status details doesn't work in report, so this is workaround), false by default
    • tmsLink / issueLink: links pattern for adding issues (tmsLink: (id) => http://someissue.com/${id})

0.2.52:

  • added addDescription (adds html description to test). Previously there was only ability to SET description.

    • ex:
      allure.test.addDescription('<h1>Heading</h1><br>');
      ...
      allure.test.addDescription('line<br>');
      It will add description to test <h1>Heading</h1><br>line<br>
  • cleanup

0.2.51:

  • fix stepStatus details in case when step throws error

0.2.46:

  • JEST_WORKER_ID to 0x format (for timeline in report)
  • fix groupping
  • fix stripAnsi
  • stepStatus details as string

0.2.45:

  • step status details as any

0.2.44:

  • step status without details when throws

0.2.43:

  • feature for suite / story for suite

0.2.42:

  • step status and status details

0.2.23 [stable]

  • default and custom reporter, timestamps in steps

Contributors

| Taisia Pitko | | ------------------------------------------------------------------------------------------------------------------------------------------------------- |