Watir Excel调用不能在虚拟机上工作

我有一个watirtesting,从Web应用程序下载一些信息到Excel文件,然后打开文件来确认内容。 在我的开发框一切工作正常,但计划自动运行(通过Hudson)总是失败,试图打开Excel文件。 我已经检查在两台机器上注册了正确版本的AutoITX3.dll(Ruby 1.8,Watir 1.6.5)。 没有其他版本的AutoITx3在任何一台机器上注册。 如果dll没有注册,Hudson盒子上的错误是预期的错误,但是它在与我的开发盒相同的位置存在于registry中。 这两台机器都是WinXP。 在Hudson框中手动运行testing会导致相同的错误 – 未知的OLE服务器:“Excel.Application”HRESULT错误代码:0x800401f3无效的类string。

我search了类似的错误,看到一个在虚拟机上运行的实例导致了类似的问题,但只有在虚拟机窗口closures的情况下。 我不认为这是一个代码错误,因为它在开发箱上运行。 任何build议debugging这个?

TIA,Sabrina

我发现使用Excel是testing自动化中的反模式。 我知道很多人喜欢它,但是如果你使用它来实现自动化,那么有更简单的方法去实现它。 考虑使用CSV和FasterCSV进行自动化testing,并检查任何我认为正在使用的版本控制。

恕我直言,你应该只使用Excel时,涉及到一个人 – 即你可能会在CSV中定义的一系列testing,但你编辑他们在Excel中,保存回来,然后与源代码pipe理系统中的东西,存储为CSV。

Excel是无用的差异,所以它不能很好地存储在一个源代码回购,没有理由将其安装在一个CI框,当CSV将做和做的更好。

无论如何,这是我的2美分。 🙂

干杯,

查理

我会再做一次这个问题的search,并把Watir离开它。 我可以find与FoxPro,Perl和Oracle相关的0x800401f3的几个问题。

看看这篇文章http://support.persits.com/show.asp?code=PS01032622

它列出了您的错误代码的可能原因。

BQ。 此错误表示组件未在服务器上注册,或传递给Server.CreateObject方法的ProgID拼写错误。 在Windows 2003和XP上,这也可能意味着系统registry项上的权限问题。

我想对你最后一个是有关的:

BQ。 在Windows 2003和XP上,这也可能意味着系统registry项上的权限问题。

顺便说一句,我googlesearch“:0x800401f3无效的类string。” 这是第一个结果。

你想要testing什么?

  1. 那个用户可以用Excel打开下载的文件? 你如何自动validation? 随着屏幕截图?
  2. 或者有些数据在文件中? 在这种情况下,我会用像roo这样的东西来validation文件的内容。

我终于弄明白了。 我以为是在远程计算机上工作的Excel安装,而不是免费的Excel 阅读器 ,它没有WIN32OLE在registry中查找的API钩子。 安装完整的Excel程序,现在一切正常。 我知道宇宙是一致的!

Interesting Posts