2010-10-14 4 views
1

У меня есть тест watir, который загружает некоторую информацию из веб-приложения в файл Excel, и затем я открываю файл для подтверждения содержимого. В моем блоке dev все работает нормально, но запланированные автоматические прогоны (через Hudson) всегда не работают, пытаясь открыть файл Excel. Я проверил, что правильная версия AutoITX3.dll зарегистрирована на обеих машинах (Ruby 1.8, Watir 1.6.5). Никакие другие версии AutoITx3 не зарегистрированы на любом компьютере. Ошибка в поле Hudson - это ожидаемая, если DLL не зарегистрирована, но она присутствует в regedit в том же месте, что и в моем блоке dev. Обе машины - WinXP. Выполнение теста вручную в окне Хадсона приводит к той же ошибке - неизвестный OLE-сервер: «Excel.Application» Код ошибки HRESULT: 0x800401f3 Недопустимая строка класса.Watir Excel не работает на виртуальной машине

Я искал аналогичные ошибки и видел один экземпляр, где работа на виртуальной машине вызывала подобные проблемы, но только если окно VM было закрыто. Я не думаю, что это ошибка кода, так как она работает в блоке dev. Любые предложения по отладке?

ТИА, Сабрина

+0

Помог ли кто-нибудь ответить на ваш вопрос ниже. Если да, отметьте это как правильный ответ. Если нет, предоставьте дополнительную информацию. –

ответ

0

Я, наконец, понял это. То, что я считал рабочей установкой Excel на удаленной машине, было вместо бесплатного чтения Excel , у которого нет API-перехватчиков, которые WIN32OLE ищет в реестре. Установлена ​​полная программа Excel, и теперь все работает. Я знал, что Вселенная будет последовательной!

1

Я считаю использование Excel быть антипаттерн в автоматизации тестирования. Я знаю много таких людей, но если вы используете это для автоматизации, тогда есть более простые способы. Рассмотрите возможность использования CSV с FasterCSV для тестов автоматизации и проверки чего-либо в управлении версиями, который, как я предполагаю, вы используете.

IMHO, вы должны использовать Excel только в том случае, если человек задействован, то есть вы можете пройти ряд тестов, определенных в CSV, но вы редактируете их в Excel, сохраняете и затем различаете то, что находится в системе управления версиями, сохраняя его как CSV.

Excel бесполезен для разграничения, поэтому он не хорошо хранится в исходном репо, нет причин устанавливать его на ящик CI, когда CSV будет делать и делать лучше.

Это все мои 2 цента. :)

Cheers,

Charley

+0

Я был неясно о тестовом примере ;-) Это часть функциональности веб-приложения, которую пользователь может сохранить информацию в файл Excel. У меня * есть * для использования Excel. Не будучи использованным для автоматизации привода данных, он является частью самого теста. – Sabrina

1

Я хотел бы сделать еще один поиск вопроса и оставить Watir из него. Я могу найти несколько проблем для 0x800401f3, связанных с FoxPro, Perl и Oracle.

0

Что вы пытаетесь проверить?

  1. Этот пользователь может открыть загруженный файл с помощью Excel? Как вы это автоматически проверяете? С экраном?
  2. Или что некоторые данные в файле? В этом случае я проверил бы содержимое файла с чем-то вроде roo.
+0

Я подтверждаю, что содержимое верное и что файл находится в формате .xls, который может быть открыт Excel. В основном я озадачен тем, почему тест ведет себя по-разному в двух якобы подобных средах (версии ОС, Ruby/Watir и т. Д.). Вселенная должна быть последовательной! – Sabrina

+1

Удачи во вселенной. :) –

+0

(глухой рыдающий шум) ;-) – Sabrina

1

Посмотрите на эту статью http://support.persits.com/show.asp?code=PS01032622

Он называет возможные причины для кода ошибки.

б. Эта ошибка означает, что либо компонент не был зарегистрирован на сервере, либо ProgID, переданный методу Server.CreateObject, имеет орфографическую ошибку. В Windows 2003 и XP это также может означать проблему разрешения на ключ системного реестра.

Я думаю, что для вас последний актуален:

Бк. В Windows 2003 и XP это также может означать проблему разрешения на ключ системного реестра.

BTW, I googled for ": 0x800401f3 Недопустимая строка класса." и это был первый результат.

+1

Согласен. Проблема в том, что Excel не установлен/зарегистрирован правильно на машине сборки. Возможно, он недоступен для всех учетных записей или, возможно, сервер сборки работает как служба. Комментарии OP об AutoIT - это красная селедка. –

+0

Я могу открыть точный файл на тестовой машине, который должен открыть тест, и Excel запускается без проблем, показывая правильные данные. Если не существует другого способа протестировать реестр, он, как представляется, будет правильно установлен. Я зарегистрировался как один и тот же пользователь, который запускает тестовый процесс, так что это также не проблема. Хотел бы я отметить этот вопрос, как ответ, но проблема сохраняется. – Sabrina

+0

Вы пытались запустить тот же тест вручную, что и Хадсон? Это будет фактический тест. Пользователь, который запускает тестовый процесс, является пользователем, которым управляет Хадсон, правильно? Или вы явно меняете контекст пользователя в задании? Комментарий службы от Bret P. важен только в том случае, если служба работает под учетной записью local_system. В этом случае вам нужно включить «разрешить взаимодействие с рабочим столом» (или что-то подобное). Но в этом случае ваш тест будет выполняться как local_system. –

Смежные вопросы