Я пытаюсь создать интеграционные тесты для надстройки Excel, разработанной с использованием автоматизации ExcelDna и VSTO.Я хотел бы протестировать различные функции нашего приложения, но мне нужно использовать CommandBar для нашей панели команд надстроек.
Я пытаюсь использовать ссылку Microsoft.Office.Interop.Excel и метод RegisterXLL для регистрации XLL вExcel.
Я пытаюсь создать тесты для Windows 10 с установленным Office 365.
У меня возникло несколько проблем, связанных с тем, что на нем много потенциально устаревших сообщений.
Первоначально я создал экземпляр приложения Excel, зарегистрировал надстройку и попытался использовать Microsoft.Office.Interop.Excel.SendKeys для отправки нажатий клавиш на экземпляр Excel.Хотя я изначально мог заставить это работать при отладке теста с точками останова, он не работает во время выполнения тестов.Есть несколько сообщений, которые указывают, что в Windows 10 Office теперь является универсальным приложением и что SendKeys больше не будет работать, поскольку он нарушает UAC, и вызовы API Win32 для отправки ключей в приложение аналогичным образом не работают, поскольку Office является универсальным приложением.
Моя вторая попытка - попытаться вызвать Командную панель и ее пункты меню с помощью кода автоматизации VSTO, и я не могу найти сообщений, которые указывают, как вызывать функции командной строки в другом домене приложения.
Кроме того, когда я закрываю экземпляр Excel, я замечаю, что всегда выполняется процесс Excel, даже несмотря на то, что приведенный ниже код используется для уничтожения приложения Excel.
void CloseApp()
{
xlApp.Quit();
xlApp = null;
GC.Collect();
GC.WaitForPendingFinalizers();
}
Я в замешательствео том, как это будет достигнуто.Есть ли у кого-нибудь сообщения, на которые они могут указать, чтобы решить эти проблемы, которые все еще работают?