【发布时间】:2011-06-14 17:36:06
【问题描述】:
我和我的合作伙伴在我们的项目的构建服务器上每晚运行一套测试。我们使用CruiseControl.NET 运行服务器,测试使用WatiN 和NUnit 编写。我们将 CruiseControl.NET 作为服务运行,可以在本地系统帐户上与桌面交互。每隔几次我们运行构建,某些测试就会失败并显示如下错误消息:
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 错误的所有情况,但我们尝试过的任何事情都无法解决这些问题。最困难的部分之一是它不能始终如一地重现。我们该如何解决这个问题?
【问题讨论】:
-
对于其他来这里的人,这可能会有所帮助 - stackoverflow.com/a/8797600/75963
标签: nunit cruisecontrol.net watin