2012-12-10 131 views
0

我們有一種服務來獲取XML中的自定義測試,並將其轉換爲CodedUI測試。然後,我們啓動一個MSTest進程,將測試加載到測試控制器中,測試控制器然後將測試分發到各個代理。我們在晚上進行迴歸測試,因此如果出現問題,沒有人會修復系統。當測試程序出現某些異常時,它會彈出一個錯誤窗口,並且系統上不能再運行測試。隨後的測試將被加載到代理中,並立即失敗,因爲它們無法執行其分配的任務。成千上萬的需要整夜在多個系統上進行的測試現在在幾分鐘內就會失敗。如何從代碼中禁用CodedUI測試代理?

我們可以通過返回測試的速度來檢測錯誤的發生,但我們不知道如何禁用代理,以免它再次接受任何測試。

編:

如果測試失敗如此慘敗,沒有更多的測試,可以嘗試成功運行(如所指出的,我們可能沒有一個動作來處理一些,可能新,彈出),那麼我們想要禁用該代理,因爲不需要在其上運行更多的測試:它們都將失敗。由於我們有許多同時運行的代理,如果一個代理髮生故障(並且被禁用),負載仍然可以在沒有很長一串故障的情況下分發。這些其他迴歸測試仍然有機會成功(一切正常)或失敗(我們是否錯過了另一個彈出窗口,或者這是一個實際的迴歸失敗)。

2000秒的失敗在20秒內沒有說任何事情,除了1系統有問題,沒有人意識到它會有,現在我們浪費了整晚的測試。 2個故障(1個故障,1個故障引起的問題)和1個系統故障意味着整個夜間運行可能會延長一兩個小時,並且我們有關於如何開始一天的有用數據:修復1測試並重新運行這兩個故障。

+0

如果沒有人來解決這個問題......爲什麼後續測試失敗很重要?如果運行是 –

回答

0

在這種情況下,需要放棄testrun。如果您自己正在運行mstest,則需要在命令行進程中注入^ c。但是:如果沒有人來解決這個問題,爲什麼後續測試失敗會造成影響?如果只是爲了快速查看哪個測試是錯誤原因,爲什麼不生成代碼ui檢查以查看消息框是否存在,並用Assert.inconclusive標記測試結果不確定。引發的測試會像旗子一樣突出。

0

如果您可以檢測到要禁用代理的位置,則可以通過運行「TestAgentConfig.exe刪除」來禁用該代理,這會將代理重置爲未配置狀態。