【问题标题】:SetUp method failed while running tests from teamcity从 teamcity 运行测试时,SetUp 方法失败
【发布时间】:2010-12-03 14:27:09
【问题描述】:

我已通过 nunit 在本地成功运行测试。但是,当我尝试通过 teamcity 运行它们时,一些测试通过了,但一些测试却因给出以下错误而失败。

SetUp 方法失败。 System.Runtime.InteropServices.COMException:由于以下错误,从 IClassFactory 创建具有 CLSID {0002DF01-0000-0000-C000-000000000046} 的 COM 组件实例失败:800704a6。 在 WatiN.Core.IE.CreateNewIEAndGoToUri(Uri uri,LogonDialogHandler logonDialogHandler,布尔 createInNewProcess) 在 WatiN.Core.IE..ctor() 在 C:\Tests.vb:line 14 中的 test.Setup() 处

【问题讨论】:

标签: nunit teamcity watin


【解决方案1】:

不确定这是否已解决,但我在 2 个不同的测试夹具中遇到了同样的错误,1 用 C# 编写,另一个用 VB.NET 编写。

对于 C# 夹具,解决问题所需要做的就是在创建 WatIn.IE 的新实例时,将第二个参数添加到:IE var ie = new IE(url, true强>) “true”告诉 WatIn “createInNewProcess”在新进程中打开下一个 IE。

然而,由于某种原因,这不适用于用 VB.NET 编写的测试夹具。 对于这个夹具,我必须在我们的一个 C# 库中调用一个方法来强制每个测试“TearDown”方法中的 IE 关闭。 以下 C# 代码成功了:

public static void CloseInternetExplorers()
{
  var processes = from process in Process.GetProcesses()
                  where process.ProcessName == "iexplore"
                  select process;

  foreach (var process in processes)
  {
    while (!process.HasExited)
    {
      process.Kill();
      process.WaitForExit();
    }
  }
}

【讨论】:

    【解决方案2】:

    您是否尝试过在 teamcity 服务器上通过 Nunit 运行测试?这可能会为您提供更多信息。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-07-30
      • 2017-02-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多