Не удается увидеть результаты отдельных тестов в списке в VS2019 Test Explorer при использовании TestCaseSource - PullRequest
0 голосов
/ 10 октября 2019

Я выполняю своего рода интеграционный тест - я тестирую HTTP 200 с некоторыми конечными точками REST API. В любом случае, это не важно для моего вопроса.

Это мой тест:

using NUnit.Framework;
using NUnit.Framework.Internal;

namespace EndpointTests
{
    [TestFixture]
    public class Tests
    {
        public class EndPoint
        {
            // just a container for URL, bearer token and so on
        }

        private static IEnumerable<EndPoint> EndPoints()
        {
            // this function returns a list of test data objects, about 150 pcs
        }

        [Test]
        [TestCaseSource(typeof(EndpointTests.Tests), nameof(EndPoints))]
        public async Task Should_Respond_Http200OK_When_Requested(EndPoint endPoint)
        {
            Assert.AreEqual( ... );
        }
    }
}

У меня есть IEnumerable список из примерно 150 объектов, который в свою очередь содержит данные, которые я использую дляподайте мою тестовую функцию (точнее, это мой TestCaseSource). Я знаю, что Visual Studio правильно выполняет все 150 тестов, как и ожидалось. Проблема в том, что я не вижу отдельных результатов.

Мой вопрос

Можно ли иметь Visual Studio для печати каждого отдельного результата теста в списке в Test Explorer? Нравится? This is what I want to achieve

1 Ответ

1 голос
/ 10 октября 2019

Учитывая ваше определение теста, NUnit создаст набор тестов с именем Should_Respond_Http200OK_When_Requested, содержащий 150 тестовых случаев. Все тестовые примеры будут иметь одно и то же имя, которое не будет отображаться в приложении, но, вероятно, что-то вроде Should_Respond_Http200OK_When_Requested(<EndPoint>).

. Сам NUnit не имеет проблем со 150 тестовыми примерами с одинаковыми именами. У этого есть другие способы идентифицировать тесты. TestExplorer, однако, использует имя для различения тестов. Он рассматривает эту ситуацию как один тест, имеющий 150 результатов. Эти результаты должны быть видны при выделении теста, но это не очень удобное отображение.

При создании имени теста NUnit использует строковое представление каждого аргумента. Если вы зададите для EndPoint класса ToString() переопределение, NUnit будет использовать его для отображения. При условии, что представление уникально, TestExplorer распознает их как отдельные тесты.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...