【问题标题】:Tests fail sporadically using CruiseControl.NET with NUnit: error 800704a6使用带有 NUnit 的 CruiseControl.NET 测试偶尔会失败:错误 800704a6
【发布时间】: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 错误的所有情况,但我们尝试过的任何事情都无法解决这些问题。最困难的部分之一是它不能始终如一地重现。我们该如何解决这个问题?

【问题讨论】:

标签: nunit cruisecontrol.net watin


【解决方案1】:

本, 我有完全相同的问题,令人惊讶的是......我想我有解决方案。这似乎是一个线程问题。测试顶部的[RequiresSTA] 标记旨在通过在每个方法上隐式放置标记[STAThread],将每个测试创建为单线程。但是,我倾向于认为这些标签没有在 [SetUp] 或 [TearDown] 方法上被调用,从而产生线程问题。我希望通过在每个方法(包括[SetUp] 和[TearDown] 方法)上明确放置 [STAThread] 标记来解决这个问题。我会让你知道任何进一步的变化,但值得一试。

【讨论】:

    【解决方案2】:

    有一些与 Watin 和 IE8 相关的类似问题。 Running Watin on TeamCity failed due to the following error: 800704a6 while trying to read data from a text file in teamcity https://serverfault.com/questions/179156/ie8-script-error-800704a6

    据我了解,请确保您的 Windows 已完全更新,再次重新启动以确保并检查问题是否仍然存在。
    如果是,请尝试在服务模式下运行 ccnet。
    如果仍然不行,请尝试使用 Internet 选项安全性来确定这是否会影响问题。

    HTH

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-03-03
      • 2016-08-28
      • 2018-08-08
      • 1970-01-01
      • 2018-04-09
      • 2021-10-11
      • 2019-03-04
      • 2020-08-08
      相关资源
      最近更新 更多