Не в состоянии выполнить классы с присутствующим методом ClassInitialize

Я сталкиваюсь с неловкой ситуацией - все тестовые классы, в которых есть метод [ClassInitialize], не могут выполнить все тестовые методы внутри.

Пример:

[TestClass]
public class ChargeAccountServiceTests
{
    private static PrivateType ChargeAccountService_Accessor;

    [ClassInitialize]
    public static void InitializeClass(Microsoft.VisualStudio.TestTools.UnitTesting.TestContext context)
    {
         ChargeAccountService_Accessor = new PrivateType(typeof(ChargeAccountService));
    }

    [TestMethod]
    public void TestFixOMRHappySHA()
    {
          //TEST LOGIC
    }
}

Заставляет тестовый агент выдать следующее исключение:

Test Name:  TestFixOMRHappySHA
Test FullName:  ChargeAccountServiceTests.TestFixOMRHappySHA
Test Source:    \ChargeAccountServiceTests.cs : line 22
Test Outcome:   Failed
Test Duration:  0:00:00

Сообщение о результате:

Метод ChargeAccountServiceTests.InitializeClass имеет неверную подпись. Параметр 1 должен иметь тип Microsoft.VisualStudio.TestTools.UnitTesting.TestContext.

Этот тест работал несколько дней назад. Цель тестового проекта:.NET 3.5

3 ответа

Из моего ответа на аналогичный вопрос у меня была та же проблема, для меня это сработало

  1. Удалить ссылку на Microsoft.VisualStudio.QualityTools.UnitTestFramework
  2. Щелкните правой кнопкой мыши проект и выберите "Add > Unit test...", чтобы восстановить ссылку с правильной версией.

Наконец, я решил, применив комбинацию советов, которые я нашел:

  1. Один из проектов MSTest был нацелен на 4.0, а другие на 3.5 - поэтому мне пришлось изменить его и восстановить подделки.
  2. Я удалил ссылку Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll и снова добавил ее во все мои тестовые проекты.
  3. Я нашел в своем решении старую версию файла vsdmi - удалил
  4. Я удалил и создал Local.testsettings
  5. Перезагрузка VS

У меня была такая же ошибка, но для [AssemblyInitialize] не [ClassInitialize].

Удаление ссылки на Microsoft.VisualStudio.QualityTools.UnitTestFramework и повторное добавление v10.0.0.0 решило проблему для меня.

Оказалось, что мои разные тестовые проекты ссылались на разные версии, и их постоянное указание на 10.0.0.0 устранило проблему.

Другие вопросы по тегам