Skip to main content

Subtests

Defining subtests

In a test class, one can simply define subtests like class methods.

@Test('Subtest Example')
export class Example {
constructor(private desktop: DesktopTarantulaAPI, private mobile: MobileTarantulaAPI) {
console.log(this.mobile.shake(500));
console.log(this.desktop.minimize());
}

async SubtestPlaywright()
{
const browser = await framework.chromium.launch({ headless: true });

const page = await browser.newPage();
await page.goto('https://www.example.com/');
console.log(await page.title());

await browser.close();
}

async SubtestSelenum()
{
const driver = await new framework.Builder()
.forBrowser('chrome')
.build();
await driver.get('https://www.example.com/');
console.log(await driver.getTitle());
await driver.quit();
}
}

This particular example constructs two subtests based on whether someone wants to use Playwright or Selenium as their framework of choice.

Running subtests

Running subtests is as easy as calling the methods of an instance of the test class.

let ExampleInstance = run(Example); //Save the instance returns by the run function
ExampleInstance.SubtestPlaywright(); //Run the subtest
//Alternatively, you could call ExampleInstance.SubtestSelenum();