Единственный способ сгруппировать тесты xUnit под более понятными именами в окне Visual Studio Test Explorer - это использовать функцию черт, а затем использовать параметры пользовательского интерфейса в Test Explorer для группировки тестов по признакам, а не по классу.
Пример кода:
public class BooksIntegrationTests
{
[Xunit.TraitAttribute("Category", "Integration tests for Books API resource")]
[Fact(DisplayName = "GET /api/books returns http status code 200")]
public void Get_Books_ReturnsCollectionOfBooks()
{
// ... test code
}
[Trait("Category", "Integration tests for Books API resource")]
[Fact(DisplayName = "GET /api/books/book returns http status code 999")]
public void Get_BookByISBN_ReturnsSingleBook()
{
// ... test code
}
}
Тогда ваш Test Explorer будет выглядеть так:
Первая кнопка, обведенная красным кружком, - это кнопка «Показать иерархию тестирования», и ее следует отменить. Справа от него находится раскрывающийся список «Группировать по ...», щелкните его и выберите группирование по «Чертам». Я использовал признак «Категория» для группировки двух тестов xUnit и изобрел другой тест, который возвращает одну книгу, а не коллекцию книг. Используя это представление, оба связанных теста отображаются в разделе «Категория: Интеграционные тесты для ресурса API книг».
Выше для VS2017. Я ожидаю, что VS2019 будет таким же / похожим.
Я не нашел способа сделать точно , что вы пытались сделать, чтобы сделать так, чтобы Группировка по "Классу" показывала более понятные имена в окне Test Explorer. Я попытался вставить атрибуты в файл AssemblyInfo.cs, изменив свойства проекта, и ничего не помогло изменить представление класса. может быть способ, но я не нашел его. Надеюсь, это поможет вам приблизиться к вашей цели.
P.S. Атрибуты «Trait» и «TraitAttribute» выглядят эквивалентными и взаимозаменяемыми. Я показал обе формы в коде, чтобы проиллюстрировать этот момент. Кажется, что «черта» является, возможно, более новой, предпочтительной формой атрибута, поскольку Visual Studio использует эту форму, если вы решите «Упростить» имя.