使用带有NUnit的CruiseControl.NET,测试偶尔会失败:错误800704a6
|
我和我的搭档在项目的构建服务器上每晚运行一组测试。我们使用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错误的所有内容,但是我们没有尝试解决任何问题。最困难的部分之一是它不能始终如一地再现。我们如何解决这个问题?
没有找到相关结果
已邀请:
2 个回复
赣借
标记旨在通过将标记ѭ2placing隐式地放置在每个方法上,从而将每个测试创建为单线程。但是,我倾向于认为没有在
或
方法上调用这些标签,从而导致线程问题。我希望通过将[STAThread]标记显式地放置在每个方法(包括
和
方法)上来解决此问题。我将让您知道任何进一步的更改,但这值得一试。
卧沫