Не в состоянии выполнить классы с присутствующим методом 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 ответа
Из моего ответа на аналогичный вопрос у меня была та же проблема, для меня это сработало
- Удалить ссылку на Microsoft.VisualStudio.QualityTools.UnitTestFramework
- Щелкните правой кнопкой мыши проект и выберите "Add > Unit test...", чтобы восстановить ссылку с правильной версией.
Наконец, я решил, применив комбинацию советов, которые я нашел:
- Один из проектов MSTest был нацелен на 4.0, а другие на 3.5 - поэтому мне пришлось изменить его и восстановить подделки.
- Я удалил ссылку Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll и снова добавил ее во все мои тестовые проекты.
- Я нашел в своем решении старую версию файла vsdmi - удалил
- Я удалил и создал Local.testsettings
- Перезагрузка VS
У меня была такая же ошибка, но для [AssemblyInitialize] не [ClassInitialize].
Удаление ссылки на Microsoft.VisualStudio.QualityTools.UnitTestFramework и повторное добавление v10.0.0.0 решило проблему для меня.
Оказалось, что мои разные тестовые проекты ссылались на разные версии, и их постоянное указание на 10.0.0.0 устранило проблему.