У меня есть проект 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». Но просто щелкнув «Выполнить все тесты» снова и / или переключившись на «Отладка», казалось, это исправилось - все тесты запустились. Теперь я должен быть в «Отладке», но независимо от того, сколько раз я нажимаю «Выполнить все тесты», единственное, что иногда меняется, - это, как я уже сказал, метод, указанный после исключения.