2.2.4 • Published 9 months ago

testit-adapter-mocha v2.2.4

Weekly downloads
-
License
Apache-2.0
Repository
-
Last release
9 months ago

Test IT TMS adapters for Mocha

Test IT

Getting Started

Installation

npm install testit-adapter-mocha

Adapter connection

// .mocharc.js

module.exports = {
  reporter: "testit-adapter-mocha",
  // ... other mocha options
}

Configuration

DescriptionFile propertyEnvironment variable
Location of the TMS instanceurlTMS_URL
API secret key How to getting API secret key?privateTokenTMS_PRIVATE_TOKEN
ID of project in TMS instance How to getting project ID?projectIdTMS_PROJECT_ID
ID of configuration in TMS instance How to getting configuration ID?configurationIdTMS_CONFIGURATION_ID
ID of the created test run in TMS instance.It's necessary for adapterMode 0 or 1testRunIdTMS_TEST_RUN_ID
Parameter for specifying the name of test run in TMS instance (It's optional). If it is not provided, it is created automaticallytestRunNameTMS_TEST_RUN_NAME
Adapter mode. Default value - 0. The adapter supports following modes:0 - in this mode, the adapter filters tests by test run ID and configuration ID, and sends the results to the test run1 - in this mode, the adapter sends all results to the test run without filtering2 - in this mode, the adapter creates a new test run and sends results to the new test runadapterModeTMS_ADAPTER_MODE
Mode of automatic creation test cases (It's optional). Default value - false. The adapter supports following modes:true - in this mode, the adapter will create a test case linked to the created autotest (not to the updated autotest)false - in this mode, the adapter will not create a test caseautomaticCreationTestCasesTMS_AUTOMATIC_CREATION_TEST_CASES
Mode of automatic updation links to test cases (It's optional). Default value - false. The adapter supports following modes:true - in this mode, the adapter will update links to test casesfalse - in this mode, the adapter will not update link to test casesautomaticUpdationLinksToTestCasesTMS_AUTOMATIC_UPDATION_LINKS_TO_TEST_CASES

File

  1. Adapter configuration file: tms.config.json
{
  "url": "URL",
  "privateToken": "USER_PRIVATE_TOKEN",
  "projectId": "PROJECT_ID",
  "configurationId": "CONFIGURATION_ID",
  "testRunId": "TEST_RUN_ID",
  "adapterMode": 0,
  "automaticCreationTestCases": false
  "automaticUpdationLinksToTestCases": false
}
  1. You can set adapter config in mocha config file: .mocharc.js.
module.exports = {
  reporter: "testit-adapter-mocha",
  tmsOptions: {
    url: 'URL',
    privateToken: 'USER_PRIVATE_TOKEN',
    projectId: 'PROJECT_ID',
    configurationId: 'CONFIGURATION_ID',
    testRunId: 'TEST_RUN_ID',
    adapterMode: ADAPTER_MODE,
    automaticCreationTestCases: AUTOMATIC_CREATION_TEST_CASES,
    automaticUpdationLinksToTestCases: AUTOMATIC_UPDATION_LINKS_TO_TEST_CASES,
  },
  // ... other mocha options
};
  1. You can set adapter config to environment variables: .env.
TMS_PRIVATE_TOKEN=YourPrivateToken
TMS_URL=URL
TMS_PROJECT_ID=YourProjectId;
TMS_CONFIGURATION_ID=YourConfigurationId;
TMS_TEST_RUN_ID=TestRunId;
TMS_TEST_RUN_NAME=TestRunName; # optional
TMS_ADAPTER_MODE=0; # or 1, or 2
TMS_CONFIG_FILE=pathToAnotherConfigFile; #optional
TMS_AUTOMATIC_CREATION_TEST_CASES=false; # or true, optional
TMS_AUTOMATIC_UPDATION_LINKS_TO_TEST_CASES=false; # or true, optional

Parallel run

To create and complete TestRun you can use the Test IT CLI (use adapterMode 1 for parallel run):

$ export TMS_TOKEN=<YOUR_TOKEN>
$ testit testrun create
  --url https://tms.testit.software \
  --project-id 5236eb3f-7c05-46f9-a609-dc0278896464 \
  --testrun-name "New test run" \
  --output tmp/output.txt

$ export TMS_TEST_RUN_ID=$(cat tmp/output.txt)

$ npx mocha --parallel

$ testit testrun complete
  --url https://tms.testit.software \
  --testrun-id $(cat tmp/output.txt)

Usage

Methods and properties can be used to specify information about autotest.

Properties

Description of metadata properties:

  • this.workItemsIds - a method that links autotests with manual tests. Receives the array of manual tests' IDs
  • this.displayName - internal autotest name (used in Test IT)
  • this.externalId - unique internal autotest ID (used in Test IT)
  • this.title - autotest name specified in the autotest card. If not specified, the name from the displayName method is used
  • this.description - autotest description specified in the autotest card
  • this.labels - tags listed in the autotest card
  • this.links - links listed in the autotest card
  • this.nameSpace - directory in the TMS system (default - directory's name of test)
  • this.className - subdirectory in the TMS system (default - file's name of test)

Methods

Description of methods:

  • this.addLinks - links in the autotest result
  • this.addAttachments - uploading files in the autotest result or step result
  • this.addMessage - information about autotest in the autotest result
  • this.addSteps - information about step in the autotest result

Examples

Simple test

// annotations.spec.ts

import assert from "assert";
import {Context, Link} from "testit-adapter-mocha";

const links: Link[] = [
  { url: "https://test01.example", title: "Example01", description: "Example01 description", type: "Issue" },
  { url: "https://test02.example", title: "Example02", description: "Example02 description", type: "BlockedBy" },
  { url: "https://test03.example", title: "Example03", description: "Example03 description", type: "Requirement" },
  { url: "https://test04.example", title: "Example04", description: "Example04 description", type: "Defect" },
  { url: "https://test05.example", title: "Example05", description: "Example05 description", type: "Repository" },
];

const paths = [
  join(__dirname, "../attachments/file.txt"),
  join(__dirname, "../attachments/image.jpg")
];

it('All annotations and methods', function (this: Context) {
  this.externalId = 'external_id';
  this.displayName = 'display_name';
  this.title = 'title';
  this.description = 'description';
  this.labels = ['label1', 'label2'];
  this.links = links;

  this.addMessage('This is a message');
  this.addLinks(links);

  this.addAttachments(paths);
  this.addAttachments('This is a custom attachment', 'custom.txt');
  this.addAttachments('Text-like attachmnet');
  
  this.addSteps("Step_name", (step) => {
    // ... step logic
    step.description = "Step Description";
    step.parameters = {
      login: "login",
      password: "password",
    };
    this.addAttachments("Attachment_from_step", "step.txt");
  })

  assert.equal(true, true);
});

Parameterized test

// parameters.spec.ts

import assert from "assert";
import {Context} from "testit-adapter-mocha";

const tests = [2, 3, "string", false];

tests.forEach((value) => {
  it(`3 is ${value}`, function (this: Context) {
    this.parameters = {
      value: value.toString(),
    };
    
    assert.strictEqual(3, value);
  });
});

const tests2 = [
  { args: [1, 2], expected: 3 },
  { args: [1, 2, 3], expected: 7 },
  { args: [1, 2, 3, 4], expected: "10" },
];

tests2.forEach(({ args, expected }) => {
  it(`correctly sum ${args} to ${expected}`, function (this: Context) {
    this.parameters = {
      args: args.toString(),
      expected: expected.toString(),
    };
    
    assert.strictEqual(sum(args), expected);
  });
});

Contributing

You can help to develop the project. Any contributions are greatly appreciated.

  • If you have suggestions for adding or removing projects, feel free to open an issue to discuss it, or directly create a pull request after you edit the README.md file with necessary changes.
  • Please make sure you check your spelling and grammar.
  • Create individual PR for each suggestion.
  • Please also read through the Code Of Conduct before posting your first idea as well.

License

Distributed under the Apache-2.0 License. See LICENSE for more information.

2.2.1

11 months ago

2.2.0

12 months ago

2.2.3

11 months ago

2.2.2

11 months ago

2.2.4

9 months ago

2.1.8

1 year ago

2.1.7

1 year ago

2.1.6

1 year ago

2.1.5

1 year ago

2.1.4

1 year ago

2.1.3

1 year ago

2.1.2

1 year ago

2.1.1

1 year ago

2.0.2

2 years ago

2.1.0

1 year ago

2.0.1

2 years ago

2.0.0

2 years ago

1.1.7

2 years ago

1.1.5

2 years ago