Blueprint: Acceptance Test Project
Copy to apps/api/tests/{ProjectName}.AcceptanceTests/.
{ProjectName}.AcceptanceTests.csproj
<Project Sdk="Microsoft.NET.Sdk"> <PropertyGroup> <IsPackable>false</IsPackable> <IsTestProject>true</IsTestProject> <ReqnrollUseIntermediateOutputPathForCodeBehind>true</ReqnrollUseIntermediateOutputPathForCodeBehind> </PropertyGroup>
<ItemGroup> <PackageReference Include="AwesomeAssertions" /> <PackageReference Include="Microsoft.AspNetCore.Mvc.Testing" /> <PackageReference Include="Microsoft.NET.Test.Sdk" /> <PackageReference Include="Reqnroll" /> <PackageReference Include="Reqnroll.xUnit" /> <PackageReference Include="Testcontainers.PostgreSql" /> <PackageReference Include="xunit" /> <PackageReference Include="xunit.runner.visualstudio" /> </ItemGroup>
<ItemGroup> <ProjectReference Include="..\..\src\{ProjectName}.WebApi\{ProjectName}.WebApi.csproj" /> </ItemGroup></Project>Add Reqnroll.Microsoft.Extensions.DependencyInjection only when step definitions need DI-backed construction instead of explicit fixture composition.
reqnroll.json
{ "$schema": "https://schemas.reqnroll.net/reqnroll-config-latest.json", "language": { "feature": "en-US" }, "bindingAssemblies": []}Layout
Features/{Feature}/{UseCase}.featureSteps/{Feature}Steps.csSteps/ResponseSteps.csSupport/AcceptanceTestWebAppFactory.csSupport/ScenarioState.csSupport/TestUsers.csSupport/TestApiClient.csTestData/PostBuilder.csHooks/AcceptanceTestHooks.csGlobalUsings.csSee sibling blueprint files for each support type.