Skip to content

Latest commit

 

History

History
647 lines (458 loc) · 16.6 KB

CHANGELOG.md

File metadata and controls

647 lines (458 loc) · 16.6 KB

Changelog

7.3.0

Notable changes

  • Added dynamic test execution data configuration (#374)

  • Fixed rate limiting issue (#375)

7.2.0

Notable changes

  • Added jira.testExecutionIssue option (#372)

  • Deprecated jira.testExecutionIssueDescription option

  • Deprecated jira.testExecutionIssueKey option

  • Deprecated jira.testExecutionIssueSummary option

  • Deprecated jira.testExecutionIssueType option

  • Added http.rateLimiting options (#373)

Dependency updates

  • Bump @bahmutov/cypress-esbuild-preprocessor from 2.2.1 to 2.2.2

  • Bump @badeball/cypress-cucumber-preprocessor from 20.1.0 to 20.1.1

  • Bump semver from 7.6.2 to 7.6.3

  • Bump cypress from 13.10.0 to 13.13.2

7.1.0

Note

This version includes a complete rewrite of the plugin for maintainability reasons. From a user perspective, it should now be slightly faster overall due to concurrency of feature file or result uploads. Its output has also been cleaned up and it will now only jump into action at the end of a Cypress run once all tests have concluded. If any bugs have slipped through the extensive unit and integration tests, please file a bug.

Notable changes

  • Added xray.status.step options (#347)

Dependency updates

  • Bump @badeball/cypress-cucumber-preprocessor from 20.0.3 to 20.1.0

7.0.1

Notable changes

  • Made plugin take Cypress project root into account (#338, fixes #337)

  • Changed plugin to only run in CLI mode (#334)

Dependency updates

  • Bump axios from 1.6.8 to 1.7.2

  • Bump semver from 7.6.0 to 7.6.2

7.0.0

Breaking changes

  • Removed addResultsUpload function

  • Changed configureXrayPlugin function which now expects Cypress' on as first parameter:

    6.0.0
    7.0.0
    // cypress.config.js
    import { configureXrayPlugin, addXrayResultUpload } from "cypress-xray-plugin";
    
    async setupNodeEvents(on, config) {
      await configureXrayPlugin(
        config,
        {
          jira: {
            url: "https://example.org",
            projectKey: "ABC"
          }
        }
      );
      await addXrayResultUpload(on);
    }
    // cypress.config.js
    import { configureXrayPlugin } from "cypress-xray-plugin";
    
    async setupNodeEvents(on, config) {
      await configureXrayPlugin(
        on,
        config,
        {
          jira: {
            url: "https://example.org",
            projectKey: "ABC"
          }
        }
      );
    }
  • Removed openSSL options:

    6.0.0
    7.0.0
    // cypress.config.js
    import { configureXrayPlugin } from "cypress-xray-plugin";
    import { constants } from "node:crypto";
    
    async setupNodeEvents(on, config) {
      await configureXrayPlugin(
        config,
        {
          openSSL: {
            rootCAPath: "/home/somewhere/cert.pem",
            secureOptions: constants.SSL_OP_LEGACY_SERVER_CONNECT
          }
        }
      );
    }
    // cypress.config.js
    import { configureXrayPlugin } from "cypress-xray-plugin";
    import { constants } from "node:crypto";
    import { Agent } from "node:https";
    
    async setupNodeEvents(on, config) {
      await configureXrayPlugin(
        on,
        config,
        {
          http: {
            httpAgent: new Agent({
              ca: "/home/somewhere/cert.pem",
              secureOptions: constants.SSL_OP_LEGACY_SERVER_CONNECT,
            }),
          }
        }
      );
    }
  • Changed support file import:

    6.0.0
    7.0.0
    // cypress/support/e2e.js
    import "cypress-xray-plugin/register";
    // cypress/support/e2e.js
    import "cypress-xray-plugin/commands";

Note

Up to version 7, this import did nothing, the imported module was completely empty. From version 7, this import allows cy.request data to be uploaded as Xray execution evidence. It can simply be omitted if no request data needs to be uploaded.

Notable changes

  • Added xray.uploadRequests option (#324)

  • Added http options (#322)

Dependency updates

  • Bump @cucumber/gherkin from 27.0.0 to 28.0.0

  • Bump @cucumber/messages from 24.0.0 to 24.1.0

  • Bump axios from 1.6.2 to 1.6.8

  • Bump semver from 7.5.4 to 7.6.0

  • Bump @badeball/cypress-cucumber-preprocessor from 19.2.0 to 20.0.3

6.0.0

Note

The breaking changes apply to projects with Cucumber integration only.

Up until version 6.0.0, the plugin assumed in feature file imports and Cucumber execution results upload that:

  • Xray cloud:
    • always uses Precondition: prefixes for background-precondition linking
    • always uses TestName: prefixes for scenario-test linking
  • Xray server:
    • always tags without prefixes for background-precondition linking
    • always tags without prefixes for scenario-test linking

This was found to be not the case in #275, both Xray cloud and Xray server have the option to customize all these prefixes.

Breaking changes

  • Cucumber tag prefixes should now be manually configured, as demonstrated for the following feature file:

    Feature: A cool story
    
      Background:
          #@MyPreconditionPrefix:CYP-222
          Given A
          When B
          Then C
    
      @MyTestPrefix:CYP-333
      Scenario: A cool scenario
          Given X
          When Y
          Then Z
    5.2.2
    6.0.0
    async setupNodeEvents(on, config) {
      await configureXrayPlugin(
        config,
        {
          cucumber: {
            // No extra configuration necessary, the plugin
            // automatically assumed tag prefixes
          }
        }
      );
    }
    async setupNodeEvents(on, config) {
      await configureXrayPlugin(
        config,
        {
          cucumber: {
            prefixes: {
              precondition: "MyPreconditionPrefix:",
              test: "MyTestPrefix:"
            }
          }
        }
      );
    }

Notable changes

  • Added cucumber.prefixes options

  • Removed decompress dependency

5.2.2

Notable changes

  • Hid initialization error messages if the plugin is disabled (fixes #271)

  • Added first step to Cucumber error messages (#257)

Dependency updates

  • Bump @cucumber/messages from 23.0.0 to 24.0.0

  • Bump @badeball/cypress-cucumber-preprocessor from 19.0.1 to 19.2.0

  • Bump axios from 1.6.0 to 1.6.2

5.2.1

Dependency updates

  • Bump @badeball/cypress-cucumber-preprocessor from 18.0.6 to 19.0.1

  • Bump @cucumber/messages from 22.0.0 to 23.0.0

  • Bump axios from 1.5.1 to 1.6.0

5.2.0

Notable changes

  • Added test environment support (fixes #223)

5.1.1

Notable changes

  • Added Jira and Xray pings during plugin initialization for configuration verification (#199)

  • Prevent results upload from modifying test issues unnecessarily (fixes #209, #210)

  • Prevent Cucumber results upload of untagged scenarios (#214)

Dependency updates

  • Bump axios from 1.5.0 to 1.5.1

5.1.0

Notable changes

  • Move cypress to the plugin's peer dependencies to impose supported Cypress version ranges

  • Prevent existing test execution issue data (summaries, descriptions) from being overwritten unnecessarily (fixes #191)

Dependency updates

  • Bump @badeball/cypress-cucumber-preprocessor from 18.0.5 to 18.0.6

  • Bump @cucumber/gherkin from 26.2.0 to 27.0.0

5.0.0

Cypress version 13 was recently released and changed the module API, which this plugin heavily relies on to upload test results to Xray. A few core feature of the plugin had to be rewritten to adapt to these changes.

Note

Previous versions of Cypress will still work just fine, the plugin is backwards compatible regarding Cypress versions.

The changes included a removal of the test function code, which previously was used to update the test steps in Xray. Because the step updates were furthermore quite problematic/lackluster anyways (#50, #164, #169), step updates have been removed from the plugin entirely.

Note

Cucumber feature file synchronization was not affected by this change, which means that upload of feature files can still change Cucumber steps in Xray.

Breaking changes

  • The plugin will now never alter existing Xray test steps of tests with test type Manual

    • Removed xray.steps.update option

    • Removed xray.steps.maxLengthAction option

  • The xray.status options have been refactored a little bit for maintainability reasons:

    4.0.4
    5.0.0
    xray: {
      statusPassed: "OK",
      statusFailed: "NO",
      statusPending: "TBD",
      statusSkipped: "OMIT",
    }
    xray: {
      status: {
        passed: "OK",
        failed: "NO",
        pending: "TBD",
        skipped: "OMIT",
      }
    }

Note

Their environment variables have not changed.

  • With Node V16 being past its end of life date, the plugin now requires Node V18 (LTS) to be installed

Dependency updates

  • Bump @badeball/cypress-cucumber-preprocessor from 18.0.4 to 18.0.5

4.0.4

Notable changes

  • Prevent manual test steps from being overwritten although xray.steps.update is false (fixes #164)

Dependency updates

  • Bump axios from 1.4.0 to 1.5.0

4.0.3

Notable changes

  • Prevent missing scenario tags from throwing errors (fixes #100)

4.0.2

Notable changes

  • Reset issue labels after feature file import (fixes #100)

  • Use dynamic @badeball/cypress-cucumber-preprocessor import (fixes #152)

Dependency updates

  • Bump @badeball/cypress-cucumber-preprocessor from 18.0.2 to 18.0.4

4.0.1

Notable changes

  • Fix cypress-xray-plugin/register export (fixes #133)

Dependency updates

  • Bump @badeball/cypress-cucumber-preprocessor from 18.0.1 to 18.0.2

  • Bump dedent from 1.2.0 to 1.5.0

4.0.0

This version heavily focused on features surrounding the upload of Cucumber results. Unfortunately, the Cucumber results upload deviates from the upload of "normal" Cypress results in terms of behaviour regarding nonexistent issues, issue reuse or Jira configuration in general. The reason for this are simply limitations in Xray's APIs.

Some of the plugin's core functionality has been rewritten entirely to keep things consistent for both upload behaviours. Because of this, some options had to be removed since they are either not needed anymore or are now built into the plugin's internal workflows.

Breaking changes

  • The plugin will now never create new Jira issues. The only exception to this rule are test execution issues.

    • It now only uploads results of Cypress tests which include a corresponding Jira key and skips all other tests

    • It now only uploads results of Cucumber tests which include both:

      • Issue tags for background elements (see here)

      • Issue tags for all scenarios and scenario backgrounds (see here)

    • It now also skips feature file upload/synchronization of feature files for which the above does not apply

Note

If the plugin still creates test or precondition issues somehow, please file a bug, since it's simply not supposed to anymore.

  • Jira client instantiation is now mandatory, meaning both Xray and Jira credentials must always be provided

  • Option jira.url is now mandatory

  • The plugin's functions must now be imported without adding /plugin at the end:

    3.3.3
    4.0.0
    import {
        addXrayResultUpload,
        configureXrayPlugin,
        syncFeatureFile,
    } from "cypress-xray-plugin/plugin";
    import { addXrayResultUpload, configureXrayPlugin, syncFeatureFile } from "cypress-xray-plugin";
  • The configuration function now expects the Cypress configuration as first parameter:

    async setupNodeEvents(on, config) {
      await configureXrayPlugin(
        config, // here
        {
          jira: {
            projectKey: "CYP",
            url: "https://example.atlassian.net"
          }
        }
      );
      // ...
    }
  • When Cucumber is used, enabling the JSON report of the cypress-cucumber-preprocessor plugin is now mandatory, for example:

    // .cypress-cucumber-preprocessorrc.json
    {
        "json": {
            "enabled": true,
            "output": "cypress/cucumber-json/formatted-report.json"
        }
    }
  • Removed plugin.overwriteIssueSummary option

  • Removed xray.testType option

  • Removed jira.createTestIssues option

Notable changes

  • Restricted exported plugin members to those defined in index.ts

  • Added plugin.logDirectory option

  • Added jira.testExecutionIssueType option

  • Added jira.testPlanIssueType option

  • Feature file upload/synchronization now automatically resets the summary should the import change it

  • Logging output has been beautified

Dependency updates

  • Bump semver and @cucumber/cucumber

3.3.3 and before

For versions 3.3.3 and before, please check the GitHub releases page.