从teamcity运行测试时,SetUp方法失败

时间:2010-12-03 14:27:09

标签: nunit teamcity watin

我通过nunit成功地在本地运行测试。但是当我尝试通过teamcity运行它们时,会传递一些测试,但有些测试会因为出现以下错误而失败。

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

2 个答案:

答案 0 :(得分:2)

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

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

然而,由于某种原因,这对于用VB.NET编写的测试夹具不起作用。 对于这个fixture,我不得不在我们的一个C#库中调用一个方法来强制每个Tests“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();
    }
  }
}

答案 1 :(得分:0)

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