gauge-dotnet
gauge-dotnet copied to clipboard
Add support for running asynchronous Steps
Proposed behavior
Should be able to deal with async/await natively
Actual behavior
Step with async/await is allowed in Gauge-dotnet. However, the failure inside the step is not being taken into account.
Steps to replicate
- Create a dotnet project
- Add the following step [Step("A step that returns Task")] public async Task AsyncStep() { await Task.Delay(15); throw new CustomSerializableException("Step failed"); }
On execution of the specification using this step, any failure in the step should be taken into account by gauge.
Version
Gauge version: 1.0.4.nightly-2018-11-26
Commit Hash: f6cb60c
Plugins
-------
dotnet (0.1.1.nightly-2018-11-28)
Hi, May I know when this feature will be released?
@jiabiao We have not decided on a timeline for this feature yet. We will look at this soon though.
Thanks @nehashri. If the gauge dotnet supports asynchronous steps, will you also add support for the enable_multithreading flag? Otherwise, running asynchronous tasks one by one makes no sense.
@jiabiao Can you please raise a separate issue for multithreading?
bump
Hello Gauge Team,
Can you please let us know if the async Task feature will be implemented in DOT-NET.
Gauge version: 1.1.7 Commit Hash: 5d86b72
Plugins
dotnet (0.5.0) html-report (4.0.12) screenshot (0.0.1) xml-report (0.2.3)
Dotnet framework 6.0. I wanted to run it using for e.g:, playwright and although the step gets executed there is no error that is reported. I see from the above discussion that the async feature is not implemented. Here is my code snippet below:
[Step("Launch Browser using Playwright")] public async Task LaunchBrowserUsingPlaywright() {
Console.WriteLine("Testing Starts");
using var playwright = await Playwright.CreateAsync();
var chrome = playwright.Chromium;
var browser = await chrome.LaunchAsync(new BrowserTypeLaunchOptions { Headless = false });
//await using var browser = await playwright.Chromium.LaunchAsync(new() { Headless = false });
var page = await browser.NewPageAsync();
await page.GotoAsync("https://playwright.dev/dotnet");
await page.ScreenshotAsync(new() { Path = "screenshot.png" });
Console.WriteLine("Testing Ends");
}
Any help or any tentative ETA is appreciated.
Thank you for your support and help.
Hari
Hello Gauge Team,
There's no Gauge team as such and no one is working on this at the moment. However pull requests to add support for async task will be accepted.