Еще один день - еще одна проблема с VS2012 и модульными тестами: наше решение имеет три тестовых проекта, в том числе 335 различных модульных тестов. Все эти тесты успешно выполняются локально на разных машинах, но при проверке на нашем сервере сборки TFS 2012 каждый раз обнаруживается только 235 тестов.Сборки TFS2012 не обнаруживают всех модульных тестов в решении VS2012
Существует 15 различных классов испытаний, содержащих модульные тесты, некоторые из которых используют новую структуру Fakes
, другие MOQ
, некоторые из них или оба. Все классы находятся в тестовых проектах (сборках), заканчивающихся Испытание, все классы заканчиваются на Тест.
Некоторые классы вообще не обнаруживаются во время тестового прогона как часть процесса сборки, в других классах, например. 8 из 12 тестов обнаружены и запущены.
Принимая пример «8 из 12», создаваемая [ProjectNameTest] .dll показывает все 12 тестов с использованием .NET Reflector 7.0
, это просто так, что некоторые из тестов не выполняются. Я также не могу найти никаких сходств (например, тесты с использованием Fakes
/MOQ
/...) среди тестов, которые не запускаются/не обнаруживаются.
Параметры сборки используется определяют Test Sources Spec
в **\*.dll
(он имел обыкновение быть **\*test*.dll
, но я изменил этот раз, чтобы убедиться, что все файлы будут приняты во внимание).
Для Run Settings
Первоначально я начал с Run Settings File
и CodeCoverageEnabled
. В рамках попытки решить проблемы я также изменил это на пользовательский файл UnitTest.runsettings
, к сожалению, с тем же результатом.
Кто-нибудь знает, почему есть все эти проблемы? Каковы могут быть причины? VS2010 и Moles
работали намного лучше, VS2012 вызывает много неприятностей в последнее время.
Update
Через несколько месяцев мы наконец обновили установку TFS обновление 3, но это сделало вещи еще хуже. Модульные тесты на сервере сборки больше не запускаются. Включение дампов и их анализ показали, что выбрано StackOverflowException
, но нет индикатора о тесте, который может вызвать его. Опять же, локально на разных системах разработчиков тесты проходят без проблем.
Мы рассматриваем возможность открытия вызова в Microsoft, поскольку мы потратили слишком много времени на то, чтобы все это сработало (снова). Родинки были намного лучше ... Я буду держать это обновление, как только будет некоторый прогресс.
Update 2
Прошло еще несколько недель, и никакого реального решения пока нет. Поскольку мы переместились с VS2012 на VS2013 (Premium каждый раз), мы обнаружили, что все тесты теперь выполняются как часть процесса сборки (снова). К сожалению, у нас все еще есть проблемы с получением всех тестов - локально, все работает отлично на нескольких системах, на сервере сборки - около десяти процентов теста. Исследование должно быть продолжено ...
Могут ли быть неправильные настройки в диспетчере конфигурации? Как и платформа для одного из ваших тестовых проектов, может быть неправильной, чтобы она не строилась, а затем не тестировалась? При просмотре файла журнала - это сборка тестового проекта? –
Настройки сборки проекта одинаковы для всех конфигураций, мы трижды проверяем, что, к сожалению, проблема должна быть где-то еще. То, что я еще не пробовал (он не был доступен во время публикации исходного вопроса), он установил VS2012 Update 3 (а не RC). Сделай это, вернувшись на работу через две недели. – Gorgsenegger
Вам удалось найти решение для этого? –