我的合作伙伴和我有一套測試在我們項目的構建服務器上每晚運行。我們使用CruiseControl.NET來運行服務器,並且測試使用WatiN和NUnit來編寫。我們將CruiseControl.NET作爲一項服務運行,並且可以通過本地系統帳戶與桌面進行交互。我們運行構建每隔幾下,某些測試將錯誤消息未能如下列:測試偶爾使用CruiseControl.NET和NUnit:錯誤800704a6
Test: cfarmweb.tests.Views.GeneralRegressionTest.DuplicateUsernameTest
Type: Failure
Message: SetUp : System.Runtime.InteropServices.COMException : Creating an instance of the COM component with CLSID {0002DF01-0000-0000-C000-000000000046} from the IClassFactory failed due to the following error: 800704a6. TearDown : System.NullReferenceException : Object reference not set to an instance of an object.
at WatiN.Core.IE.CreateNewIEAndGoToUri(Uri uri, IDialogHandler logonDialogHandler, Boolean createInNewProcess)
at WatiN.Core.IE..ctor(String url)
at cfarmweb.tests.Navigator.SiteNavigator..ctor(String browserName, Boolean visible) in c:\ccworkdir\CFarm\builddir\cfarmweb.tests\Navigator\SiteNavigator.cs:line 35
at cfarmweb.tests.Views.GeneralRegressionTest.MakeNavigator() in c:\ccworkdir\CFarm\builddir\cfarmweb.tests\Views\GeneralRegressionTest.cs:line 34
--TearDown
at WatiN.Core.Browser.OnGetNativeDocument()
at WatiN.Core.DomContainer.get_NativeDocument()
at WatiN.Core.Document.ContainsText(String text)
at cfarmweb.tests.Navigator.SiteNavigator.HasText(String target) in c:\ccworkdir\CFarm\builddir\cfarmweb.tests\Navigator\SiteNavigator.cs:line 213
at cfarmweb.tests.Navigator.SiteNavigator.SignOut() in c:\ccworkdir\CFarm\builddir\cfarmweb.tests\Navigator\SiteNavigator.cs:line 110
at cfarmweb.tests.Views.GeneralRegressionTest.DisposeNavigator() in c:\ccworkdir\CFarm\builddir\cfarmweb.tests\Views\GeneralRegressionTest.cs:line 123
的成功建立似乎並不依賴於對代碼的更改本身,因爲我們已經修改了部分程序中與測試無關的部分,並修改了部分或修正了部分。我們都是軟件測試領域的新手(一般的開發),但是我們在網上找到的關於這個錯誤的東西似乎都與我們的情況有關。我們已經看到從系統重啓掛起到Internet Explorer 8兼容性問題到JavaScript錯誤的所有內容,但我們所嘗試的任何內容都沒有解決問題。其中最困難的部分是它不一致的可重複性。我們如何解決這個問題?
給其他人來這裏,這可能有所幫助 - http://stackoverflow.com/a/8797600/75963 – 2012-01-11 00:44:49