@testmonitor/ts-reporter-client
Version: 
The TestMonitor TypeScript Reporter Client is a lightweight library for submitting automated test results to TestMonitor
96 lines (71 loc) • 2.95 kB
Markdown
The TestMonitor TypeScript Reporter Client (`@testmonitor/ts-reporter-client`) is a lightweight library for submitting automated test results to [TestMonitor](https://www.testmonitor.com/).
It works seamlessly with automation frameworks like **Playwright** and **Cypress**, and supports both **TypeScript** and **JavaScript** environments.
## Table of Contents
- [Installation](#installation)
- [Usage](#usage)
- [License](#license)
## Installation
Install the package using your preferred package manager:
```sh
npm install @testmonitor/ts-reporter-client
```
## Usage
To get started, you’ll need a *token* for your specific test automation reporter. You can find it on the detail page of the integration in your TestMonitor project.
### Initialize the client
```javascript
import { Client } from '@testmonitor/ts-reporter-client';
const client = new Client({
    domain: 'example.testmonitor.com',
    token: 'token',
    createReportPath: 'api/v1/reporters/playwright/start',
    submitTestResultsPath: 'api/v1/reporters/playwright/complete',
    addAttachmentPath: 'api/v1/reporters/playwright/attachment',
});
```
Before running your automated tests, create a report in TestMonitor using createReport. A report in TestMonitor automatically includes a test run and acts as the container for the results of your automation run.
```javascript
import { Report } from '@testmonitor/ts-reporter-client';
const report: Report = await client.createReport({
    name: 'Test run name',
    // Optional parameters
    milestoneId: 12,                   // Use this if you want to link to an existing milestone
    milestoneName: 'Release 2025.4',   // Or use this to create or match a milestone by name
    testEnvironmentId: 3               // ID of the target test environment in TestMonitor
});
```
Once your automated test execution has finished, submit the results to the corresponding TestMonitor report with submitTestResults:
```javascript
import { Report } from '@testmonitor/ts-reporter-client';
const report: Report = await client.submitTestResults({
    report_id: 1,
    data: {
        'suites': [{
            'name': 'Login Suite',
            'suites': [],
            'test_cases': [{
                'id':'test-case-id',
                'name': 'User can log in with valid credentials',
                'status': 'passed'
            }]
        }],
        'meta': {
            'duration': 1035
        }
    }
});
```
Optionally, you can upload files (e.g., screenshots or logs) to a test result after the test results have been submitted.
```javascript
await client.uploadAttachment({
  id: 'test-case-id',
  reportId: 1,
  attachment: new File([bufferData], 'screenshot.png', { type: 'image/png' }),
});
```
Copyright (c) TestMonitor | we are Cerios B.V.
All rights reserved.