Тесты xUnit неожиданно выдают исключение System.Collections.Generi c .KeyNotFoundException: не удается найти UniqueTest VSTestAdapter - PullRequest
1 голос
/ 27 января 2020

У меня есть проект xUnit, который до сих пор безупречно выполнял все тесты.

Я добавил два новых метода тестирования, и теперь неожиданно ни один тест не может быть запущен, потому что выброшено исключение:

System.Collections.Generic.KeyNotFoundException: Unable to find UniqueTest VSTestAdapter

За ним следует путь к одному из моих методов тестирования, но иногда, когда я все же пытаюсь запустить все тесты метода после изменения исключения.

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

Подозрительный код:

    public static IEnumerable<object[]> TestData
    {
        get
        {
            return new[]
            {
                new object[] { "zrgrgffwf", new string[] { "sf", "age", "fe"} },
                new object[] { "gfsefsefse", new List<string>() { "fef", "awr", "hrg" } },
                new object[] { "shgfeswff", new HashSet<string>() { "shsg", "wde", "kiuik" } },
                new object[] { "pajfoehgsd", new Queue<string>(new string[] { "okd", "rnop", "rng" }) }
            };
        }
    }

Как я уже сказал, после добавления этого и использования его в свойстве атрибута MemberData все работало нормально несколько раз. Проблема появилась после того, как я написал это:

    [Theory]
    [InlineData("sample text", "lolwut", "test")]
    [InlineData("other sample text", "yup", "ahha")]
    [InlineData("yadda", "-", "yadda.")]
    [InlineData("et", "cete", "ra")]
    public void Method_Test(string testString, string testCase, string expected)
    {
        string actual = testedMethod(testCase);

        Assert.Equal(expected, actual);
    }

Дополнительное примечание: у меня было то же исключение, которое произошло до того, как один раз после написания этого кода свойства, при попытке «запустить все» тесты в конфигурации «Release». Но просто щелкнув «Выполнить все тесты» снова и / или переключившись на «Отладка», казалось, это исправилось - все тесты запустились. Теперь я должен быть в «Отладке», но независимо от того, сколько раз я нажимаю «Выполнить все тесты», единственное, что иногда меняется, - это, как я уже сказал, метод, указанный после исключения.

1 Ответ

0 голосов
/ 29 января 2020

Из ссылки @xander опубликовал, я увидел, что установка адаптера nUnit VS может решить проблему, даже если я использую xUnit.

Welp, он сделал это для меня. В то время как в Test Explorer у меня появляется дополнительный тестовый проект (который является моим собственным тестовым проектом только с первым «InlineData», взятым в качестве аргументов), мои тесты xUnit теперь выполняются.

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