This project aims to provide a way for c# developers to quickly create ASP.NET Core Integration Tests for an entire project at once.
This is meant to help people that have a solution without any tests to quickly get up and running, avoiding hours of writing repetitive boilerplate code.
This currently supports only NUnit (v3) tests, and it was tested with fairly simple/common scenarios (see the SampleLibrary folder).
- Install the tool:
dotnet tool install TerevintoSoftware.Integrator
- (optional) See the available options with
dotnet-integrator --help
- Run the generator:
dotnet-integrator "path/to/mvc/project/folder" "path/to/tests/project-or-folder" -n YourApp.Tests.Tests
Do note that the paths can be absolute or relative, and the tool uses the built (Release or Debug) assembly from the input project.
Considering an endpoint like:
[HttpGet("{id}/async-wrapped")]
public async Task<ActionResult<WeatherForecast>> GetWrappedAsync(int id)
{
}
The tool would generate a test like:
[Test]
public async Task Test_Get_GetWrappedAsync()
{
// Arrange
int id = default;
WeatherForecast expectedResult = default;
var httpClient = GetClient();
// Act
var requestUri = $"weather/{id}/async-wrapped";
var httpResult = await httpClient.GetAsync(requestUri);
// Assert
Assert.That(httpResult.IsSuccessStatusCode, Is.True);
var contentResult = await httpResult.Content.ReadFromJsonAsync<WeatherForecast>();
Assert.That(contentResult, Is.EqualTo(expectedResult));
}
See more examples in the Samples folder.
- Install Visual Studio 2022 (.NET 8 required), if needed.
- Install git, if needed.
- Clone this repository.
- Build from Visual Studio or through
dotnet build
.
Once the solution is compiled, tests can be run either from Visual Studio's Test Explorer window, or through dotnet test
.
The .NET Tool and this solution are licensed under the MIT license.
Please use the issue tracker and ensure your question/feedback was not previously reported.