2010-03-01 33 views
0

我正在使用CruiseControl.NET和MSTest來構建我的Excel加載項。我的一些測試涉及打開Excel,執行一些操作並檢查結果。這全部通過COM實現。從CruiseControl.NET運行MSTest時,Excel進程掛起

如果我使用Visual Studio 2008運行測試,它們可以很好地工作。但是,當CruiseControl啓動測試時,將創建Excel進程,但只是掛起。測試過程將只會繼續,如果我殺了Excel進程。 webdashboard然後報告TestInitialize函數中的一個錯誤:它基本上只是創建並實例化Excel並加載我的XLL。

有沒有人知道什麼可能是我的問題的解決方案?我在構建服務器上使用Excel 2007。

感謝,

克里斯

回答

1

這通常是因爲有仍徘徊在未予處置的對象。你可能需要在你的測試清除中更加健壯(考慮工作簿,工作表,工作表,範圍 - 也可能更多),或者你可以使用暴力破解方法並使用Process類作爲TestSetUp的一部分殺死所有的Excel實例) 方法。

+0

這可能是這種情況,但是在運行Visual Studio IDE時(並且不會留下任何掛起的Excel進程),測試運行正常 - 它們僅在從CC.NET運行時保留。有其他人看到過這種行爲嗎? –

+0

事實證明這是個問題 - 我所依賴的其中一個庫持有COM參考。 –