Класс TestContext не найден в .NET-ядре - PullRequest
1 голос
/ 02 июля 2019

Я перемещаю и рефакторинг кода из .NET-Framework на .NET-Core в C #.Когда я запускаю простой тест для метода, который должен сортировать список, я получаю эту ошибку:

"System.MissingMethodException: метод не найден: 'System.Collections.IDictionary Microsoft.VisualStudio.TestTools.UnitTesting.TestContext.get_Properties () '. "

Я проверил ссылки на другие пространства имен, которые необходимы.Я искал ошибку онлайн и понял, что класс TestContext еще не был представлен в .NET Core!Есть ли другой способ или библиотека замены, которую я могу использовать вместо этого?Спасибо.

        [TestMethod]
        public void TestMethod()
        {
            // Arrange
            // Grab an arbitrary start time.
            Time startTime = Time.Now;

            List<TimeValue> values = new List<TimeValue>
            {
                // Make sure that second timestamp comes before the first 
                   timestamp
                new TimeValue(startTime.PlusMinutes(1)),
                new TimeValue(startTime)
            };

            // Ensure that this is sorted in ascending order of time.
            List<TimeValue> expectedValues = values.OrderBy(value => 
            value.Timestamp).ToList();
            CollectionAssert.AreNotEqual(expectedValues, values);

            // Act
            SortArray myObj = new SortArray(values);

            // Assert
            CollectionAssert.AreEqual(expectedValues, SortArray.Values);
        }

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

'System.Collections.IDictionary Microsoft.VisualStudio.TestTools.UnitTesting.TestContext.get_Properties () '.

Ответы [ 2 ]

2 голосов
/ 02 июля 2019

Возможная альтернатива, которую вы можете использовать: xUnit . Это инструмент с открытым исходным кодом, и вы можете использовать его с .NET Core.

Microsoft предлагает учебник о том, как выполнить xUnit с .NET Core.

Другая возможность - это «тестирование по сети», которое представляет собой инструмент модульного тестирования, который Microsoft сделала совместимой с .NET Core.

0 голосов
/ 02 июля 2019

Попробуйте добавить в свой тестовый класс следующее свойство:

public TestContext TestContext { get; set; }

В целом, MSTest, похоже, не разрабатывается активно. Поскольку он поставляется с Visual Studio, Microsoft поддерживает его работу на .NET несколько даже на .NET Core), но они, похоже, сами используют xUnit для внутреннего использования, поэтому имеет смысл рассмотреть возможность переключения ваших тестов на xUnit.

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