Я работаю в .NET core 2 на Mac (и мой сервер сборки - Linux), и я ищу способ создания покрытия кода для интеграции тестов, которые используют и встроенный веб-сервер в качестветестируемая система.Я могу получить покрытие для моих модульных тестов, но не для моих тестов в стиле интеграции.
Я относительно новичок в .NET, но я как можно лучше ознакомился с экосистемой тестирования впоследние несколько месяцев.
В настоящее время я тестирую API-интерфейс ядра .NET 2.2, используя xUnit в качестве моей тестовой среды и используя поставляемый Microsoft пакет Microsoft.AspNetCore.Mvc.Testing
для генерации тестового сервера внутри моих тестов.Очень похоже на эту ссылку
Затем у меня есть тесты, которые используют TestClient для отправки HTTP-запросов во встроенную SUT и подтверждения ответа.
Я могу создать покрытие кодадля моих юнит-тестов с использованием AltCover , и это прекрасно работает!Но когда я запускаю altcover над моим проектом интеграционных тестов, я не получаю результатов покрытия.
У меня для проектов DebugType установлено значение Full, и файлы символов отладки, похоже, создаются для всего соответствующего кода.
Тестовое устройство xUnit для моего SUT
namespace Redbox.Product.Tests.Integration.Util
{
public class TestConfigurationFixture
{
private readonly WebApplicationFactory<TestStartup> _webApplicationFactory;
public TestConfigurationFixture()
{
_webApplicationFactory = new CustomWebApplicationFactory<TestStartup>();
}
public HttpClient CreateClient()
{
return _webApplicationFactory.CreateClient();
}
}
}
Тест, который выполняется на этом тестовом приборе
[Fact]
public async Task ResultsForQueryFound_RespondsOK()
{
var response = await _client.PostAsJsonAsync("/products/search",
new ProductSearchRequest
{
Query = "foo"
})
.ToHelper();
response.Should().HaveStatus(OK);
}
Я могу сгенерировать покрытие кода для своих модульных тестов, используя AltCover , и это прекрасно работает!Но когда я запускаю altcover над моим проектом интеграционных тестов, я не получаю результатов покрытия.
Кто-нибудь смог создать покрытие для этого типа теста?