ProtoTest.Sql 1.0.1

dotnet add package ProtoTest.Sql --version 1.0.1
                    
NuGet\Install-Package ProtoTest.Sql -Version 1.0.1
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="ProtoTest.Sql" Version="1.0.1" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="ProtoTest.Sql" Version="1.0.1" />
                    
Directory.Packages.props
<PackageReference Include="ProtoTest.Sql" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add ProtoTest.Sql --version 1.0.1
                    
#r "nuget: ProtoTest.Sql, 1.0.1"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package ProtoTest.Sql@1.0.1
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=ProtoTest.Sql&version=1.0.1
                    
Install as a Cake Addin
#tool nuget:?package=ProtoTest.Sql&version=1.0.1
                    
Install as a Cake Tool

ProtoTest.Sql

One database connection per test, opened and owned as a resource, with optional per-test transaction isolation.

dotnet add package ProtoTest.Sql

Quick start

builder.AddSql(
    _ => new NpgsqlConnection(connectionString),
    sql => sql.ShareConnectionWith("Orders"));

[ProtoTest]
[Application("Orders")]
public async Task Order_ShouldBeVisibleToTheStore()
{
    await using var command = Proto.Context.SqlConnection().CreateCommand();
    command.CommandText = "insert into orders (reference) values ('ORD-1')";
    await command.ExecuteNonQueryAsync();
}

What it adds

  • ConnectionAddSql(Func<IServiceProvider, DbConnection>, configure?) registers a scoped connection and session; repeats are no-ops and the first factory wins.
  • AccessorsProto.Context.SqlConnection(), SqlSession() and SqlTransaction() (null when isolation is None).
  • IsolationSqlIsolation.Transaction (default) opens a transaction that is rolled back at test end, so writes through that connection never persist; SqlIsolation.None persists them and lets provisioners clean up.
  • Sharing guard — with transactional isolation every application not declared through ShareConnectionWith(...) fails the run at BeforeRunAsync with guidance.
  • Tracingsql.connection.open, sql.transaction.begin and sql.transaction.rollback, plus the connection as a database resource.

Configuration

Key Type Default
ProtoTest:Sql:Isolation SqlIsolation (Transaction/None) Transaction
ProtoTest:Sql:SharedWithApplications List<string> empty

The transaction covers only the connection ProtoTest owns; ShareConnectionWith is a declaration, not enforcement, and the guard sees only applications registered with AddApplication. Commands are never traced.

Learn more

Product Compatible and additional computed target framework versions.
.NET net8.0 is compatible.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed.  net9.0 is compatible.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  net10.0 is compatible.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (1)

Showing the top 1 NuGet packages that depend on ProtoTest.Sql:

Package Downloads
ProtoTest.Sql.EntityFrameworkCore

Entity Framework Core access over the ProtoTest.Sql per-test connection.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
1.0.1 68 9/20/2026
1.0.0 69 9/20/2026