Nunit 从teamcity运行测试时,安装方法失败

Nunit 从teamcity运行测试时,安装方法失败,nunit,teamcity,watin,Nunit,Teamcity,Watin,我通过nunit成功地在本地运行测试。但是,当我试图通过teamcity运行它们时,一些测试通过了,但由于给出以下错误,一些测试失败了 安装方法失败。System.Runtime.InteropServices.COMException:由于以下错误,使用IClassFactory中的CLSID{0002DF01-0000-0000-C000-0000000000 46}创建COM组件的实例失败:800704a6。 在WatiN.Core.IE.CreateNewIEAndGoToUri(Uri

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

安装方法失败。System.Runtime.InteropServices.COMException:由于以下错误,使用IClassFactory中的CLSID{0002DF01-0000-0000-C000-0000000000 46}创建COM组件的实例失败:800704a6。 在WatiN.Core.IE.CreateNewIEAndGoToUri(Uri Uri、LogonDialogHandler、LogonDialogHandler、Boolean createInNewProcess) 在WatiN.Core.IE..ctor()
在C:\Tests.vb中的test.Setup()处:第14行

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

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

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

然而,由于某些原因,这对于用VB.NET编写的测试夹具不起作用。 对于这个fixture,我必须在我们的一个C#库中调用一个方法,以强制在每个测试中使用IE闭包“TearDown”方法。 下面的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();
    }
  }
}

如果您从测试中删除WatiN的使用,您的NUnit测试用例是否无误通过?相关帖子另一篇相关帖子