Rayrun
← Back to Discord Forum

how to implement custom report -

how i send suit and result to the following function from the spec files?

import type { Reporter, FullConfig, Suite, TestCase, TestResult, FullResult } from '@playwright/test/reporter';

class MyReporter implements Reporter { constructor(options: { customOption?: string } = {}) { console.log(my-awesome-reporter setup with customOption set to ${options.customOption}); }

onBegin(config: FullConfig, suite: Suite) { console.log(Starting the run with ${suite.allTests().length} tests); }

onTestBegin(test: TestCase) { console.log(Starting test ${test.title}); }

onTestEnd(test: TestCase, result: TestResult) { console.log(Finished test ${test.title}: ${result.status}); }

onEnd(result: FullResult) { console.log(Finished the run: ${result.status}); } } export default MyReporter;

This thread is trying to answer question "How to send 'suit' and 'result' to a function from the spec files in a custom reporter class?"

1 reply

Could you further explain what you’re trying to do?

Answer

Passing Variables to a Function in Playwright's Test Framework

In Playwright's test framework, you can pass variables to a function within a test block. Here's how you can do it:

First, import the test module from '@playwright/test'.

import { test } from '@playwright/test';

Next, define your test suite using test.describe. This groups related tests together under a common suite name. Inside the suite, define your individual tests using the test function.

test.describe('suite', () => {
  test('test should work', async ({ page }) => {
    // Your code here
  });
});

Now, let's say you have a function that expects 'suit' and 'result'. You can call this function within your test block and pass in those values as arguments.

import { test } from '@playwright/test';

function myFunction(suit: string, result: string) {
  // Your code here
}

test.describe('suite', () => {
  test('test should work', async ({ page }) => {
    const suit = "mySuit";
    const result = "myResult";

    myFunction(suit, result);
  });
});

In this example, myFunction is called within your test block, and 'suit' and 'result' are passed to that function. Remember to replace "mySuit" and "myResult" with the actual values you want to send.

For more tips on writing efficient Playwright test scripts, check out this blog post on the Ray.run website.

TwitterGitHubLinkedIn
AboutQuestionsDiscord ForumBrowser ExtensionTagsQA Jobs

Rayrun is a community for QA engineers. I am constantly looking for new ways to add value to people learning Playwright and other browser automation frameworks. If you have feedback, email [email protected].