我的合作伙伴和我有一套测试在我们项目的构建服务器上每晚运行。我们使用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