我遇到的問題是,連接到Exchange從Outlook在執行通過微軟測試代理集成測試被阻塞(如Outlook是處於斷開狀態)。測試通過Microsoft Test Manager啓動。 以下是我遇到問題的集成測試代碼,我儘可能簡化代碼以排除導致問題的集成測試中的代碼。我還排除了運行中的所有其他測試。
[TestMethod]
public void LaunchOutlook()
{
Process.Start(new ProcessStartInfo(@"C:\Program Files (x86)\Microsoft Office\Office14\Outlook.exe"));
Thread.Sleep(120000);
}
我可以改變的Outlook多久被改變了Thread.Sleep超時受阻。在測試運行時,我可以重新啓動Outlook,Outlook仍然被阻止。在Outlook仍在運行時測試結束後,將恢復與Exchange的連接。這發生在Outlook 2010和Outlook 2013中。如果我在控制檯應用程序中運行集成測試,Outlook連接不會被阻止。如果我通過MSTest.exe手動運行測試代碼,則Outlook連接不會被阻止。被阻止的唯一方法是集成測試是否由Microsoft測試代理執行,這是集成測試所需的方法。
上的Outlook是一臺機器與網絡隔離的Hyper-V實驗室啓用的一部分上運行的問題
更多細節。在同一個實驗室中還有其他機器的Outlook實例指向同一臺Exchange服務器。在一臺計算機上執行測試會導致Outlook實例在同一實驗室中的其他計算機出現Outlook連接問題,此時Outlook實例將指向同一臺Exchange服務器。 我有一個小型的Hyper-V實驗室,啓用了網絡隔離,這與上面提到的實驗非常相似。主要區別在於它只安裝了一臺裝有Outlook的計算機。此Outlook可以通過Microsoft Test Manager執行上述測試時連接到Exchange。很明顯,這是一個環境問題,因爲它在一個實驗室而不是另一個實驗室中工作。兩個實驗室都安裝了相同的Exchange服務器,並在實驗室中的所有機器上安裝了相同的Microsoft Test Agent。 我排除了Outlook版本的問題,因爲較大的實驗室包含與較小實驗室中的Outlook版本相同的Outlook版本。
在測試運行
注意到Outlook處於斷開狀態。
試運行後。
請注意,Outlook未連接到Exchange。
環境信息
Outlook 2010的版本:(14.0.7113.5000)SP2(14.0.1740.5002)64位或32位 展望2013版本:(15.0.4667.1000)MSO(15.0。 Windows 7版本:6.1(Build 7601:Service Pack 1) Exchange 2013版本:15.0(內部版本847.32) Windows Server 2008 R2版本:6.1(內部版本7601:Service Pack 1 ) Microsoft Test Manager 2013版本:12.0.31101.0 TFS 2013 Update 4版本:12.0.31101。0 微軟測試代理版本:12.0.31101.0更新4
故障排除步驟
- 我發起procmon中,尋找失敗的TCP和UDP操作的網絡故障指示,並沒有發現。
- 我打開了在Outlook中啓用故障排除日誌記錄,日誌中沒有任何內容顯而易見。
- 測試運行時ping Exchange服務器仍然有效。
- 我使用MSTest.exe通過命令行運行集成測試,並且Outlook連接未被阻止。
請求幫助
能否請你幫我解決這個問題?我看到了兩種方法來確定問題。 1.尋找兩種環境之間的差異 2.獲取可能會暴露核心問題的日誌或其他信息。
我願意接受建議或意見,特別是如果您有解決問題的不同方法。隨意詢問與日誌,PowerShell命令和註冊表值等問題有關的其他信息。 如果您時間不夠,您能否至少發表一些與解決此問題有關的建議或想法? 謝謝, Keith
爲什麼你需要從外部軟件自動化Outlook?在開始集成測試之前你有Outlook嗎?事實是,只有一個Outlook實例可以同時運行。 – 2015-02-08 14:44:08
因爲我正在開發Outlook擴展,並且無法在不運行Outlook的情況下測試Outlook擴展。在集成測試運行之前,Outlook未運行。在測試期間只有一個Outlook實例正在運行。 – 2015-02-09 16:53:37