Процесс Excel зависает при запуске программой MSTest из CruiseControl.NET

Я использую CruiseControl.NET с MSTest для создания надстройки Excel. Некоторые из моих тестов включают открытие Excel, выполнение некоторых операций и проверку результатов. Все это достигается через COM.

Если я запускаю тесты в Visual Studio 2008, они работают отлично. Однако, когда тесты запускаются CruiseControl, процесс Excel создается, но просто зависает. Процесс тестирования продолжится, только если я убью процесс Excel. Затем веб-панель сообщает об ошибке в функции TestInitialize: которая в основном просто создает экземпляр Excel и загружает мой XLL.

Кто-нибудь знает, как решить мою проблему? Я использую Excel 2007 на своем сервере сборки.

Спасибо,

Крис


person Chris Spicer    schedule 01.03.2010    source источник


Ответы (1)


Обычно это происходит из-за того, что рядом с вами все еще находятся недоношенные предметы. Вам либо нужно быть более надежным в вашей тестовой очистке (подумайте о книгах, рабочих листах, листах, диапазоне - и, возможно, о многом другом), либо вы можете пойти на метод грубой силы и убить любой экземпляр Excel, используя класс Process как часть вашего TestSetUp ( ) метод.

person Dave    schedule 01.03.2010
comment
Это может быть так, но тест выполняется правильно при запуске через IDE Visual Studio (и не оставляет никаких зависающих процессов Excel) - они сохраняются только при запуске из CC.NET. Кто-нибудь еще видел такое поведение? - person Chris Spicer; 01.03.2010
comment
Оказывается, это была проблема - одна из библиотек, от которой я зависел, держала ссылку на COM. - person Chris Spicer; 30.11.2010