SpecFlow
SpecFlow copied to clipboard
Hooks async await support
It's possible to add support async/await for any kind of Hooks. I have some case to setup specflow tests.
- I want to start my services in docker-compose env
- => I have some code that process in loop to ping all services, I have to wait with timeout that all services will startup and give me /version or /healthz good response. So, in brief I have this code: [BeforeTestRun] public static Task BeforeTestRun() { ..... // to check that code below execute only once ..... PermissionService.SetUpAuthorizedUserRoleAsync(FindServiceUrl(Names.PermissionService)).GetAwaiter().GetResult(); }
async Task SetUpAuthorizedUserRoleAsync(..) { // for example var tasks = services.Select(x => checker.CheckAsync(url)).ToList(); await Task.WaitAll(tasks); // if some task fail, test engine don't respond. // but if I change code that: Task.WaitAll(tasks).GetAwaiter().GetResult(); // ok }
SpecFlow Version:
- [*] 3.1
Used Test Runner
- [ ] SpecFlow+Runner
- [ ] MSTest
- [ ] NUnit
- [*] Xunit
Version number: Version=2.4.1
Project Format of the SpecFlow project
- [ ] Classic project format using
packages.config
- [ ] Classic project format using
<PackageReference>
tags - [*] Sdk-style project format
.feature.cs files are generated using
- [*]
SpecFlow.Tools.MsBuild.Generation
NuGet package - [ ]
SpecFlowSingleFileGenerator
custom tool
Visual Studio Version
- [*] VS 2019
- [ ] VS 2017
- [ ] VS 2015
Enable SpecFlowSingleFileGenerator Custom Tool
option in Visual Studio extension settings
- [ ] Enabled
- [ ] Disabled
Are the latest Visual Studio updates installed?
- [*] Yes
- [ ] No, I use Visual Studio version
<Major>.<Minor>.<Patch>
.NET Framework:
- [ ] >= .NET 4.5
- [ ] before .NET 4.5
- [ ] .NET Core 2.0
- [ ] .NET Core 2.1
- [ ] .NET Core 2.2
- [ ] .NET Core 3.0
- [*] .NET Core 3.1
Test Execution Method:
- [ ] Visual Studio Test Explorer
- [ ] TFS/VSTS/Azure DevOps – Task – PLEASE SPECIFY THE NAME OF THE TASK
- [ ] Command line – PLEASE SPECIFY THE FULL COMMAND LINE
- [*] Resharper test explorer
<SpecFlow> Section in app.config or content of specflow.json
{
"bindingCulture": {
"language": "en-us"
},
"language": {
"feature": "en-us"
},
"ApiUrls": [
{
"ApiUrl": "http://localhost:5005",
"DataBaseName": "",
"Name": "AuthService"
},
.....
}
}
@SabotageAndi Hey, there is any update on the subject?
No, sadly not.
@SabotageAndi Sorry if this is not related, however does it mean we can't bind an async operation in a [BeforeFeature] hook as well? Thanks
@SabotageAndi Sorry if this is not related, however does it mean we can't bind an async operation in a [BeforeFeature] hook as well? Thanks
I am using Specflow.xunit v3.9.74 and am able to use as below
public static async Task CleanupOnStart()
{
await DoSomethingAsync();
await DoSomethingElseAsync();
}
Any update ?