| Назад: 11.4 Вызов API-функций и функций из DLL | Содержание | Дальше: 11.6 Remote Desktop, Virtual PC, VMware |
Существует 2 способа вызова функций из .NET сборок (assemblies):
- Используя объект dotNET
- Используя домен приложения
Мы рассмотрим оба этих примера.
В качестве примера .NET-приложения мы возьмем приложение nUnitTestingApp, которое можно найти в архиве с проектом и которое мы создавали специально для главы 17 Модульное тестирование.
Использование объекта dotNET
Прежде, чем получить доступ к .NET методам из скриптов TestComplete, необходимо добавить эти методы в список CLR Bridge. Для этого щелкнем правой кнопкой мыши на имени проекта в Project Explorer и выберем пункт меню Edit – Properties, после чего выберем элемент CLR Bridge.

Здесь мы можем добавлять различные методы как из произвольных файлов (Browse Files), так и из глобального кэша сборок (Browse GAC).
Нажмем кнопку Browse Files и выберем файл nUnitTestingApp.exe. Теперь методы из нашего класса Form1 можно видеть и вызывать непосредственно из скриптов TestComplete с помощью объекта dotNET.

function TestDotNET()
{
var res = dotNET.nUnitTestingApp.Form1.PlusMethod(2, 3);
Log.Message(res);
}
Результат работы данной функции:

Этот способ позволяет вызывать статические методы. Если вам нужно вызвать нестатический метод, сначала необходимо создать объект соответствующего класса с помощью конструктора. Все конструкторы имеют имена вида ztor, ztor_1, ztor_2 и т.д.
Обратите внимание, что запускать само приложение нам не нужно. Также обратите внимание на параметры Preferred architecture… и Preffered apartment model… на странице CLR Bridge. Эти параметры необходимо установить правильно в зависимости от сборки. Подробнее об этих опциях можно прочитать в разделе справки CLR Bridge Options.
Также обратите внимание, что если в имени namespace используется точка (например, System.Collection), то точку необходимо заменить на знак подчеркивания (System_Collection).
Использование домена приложения
Любой запущенный .NET процесс имеет метод AppDomain, который позволяет обращаться к методам сборок без добавления их в список CLR Bridge.

Метод AppDomain содержит свойство dotNET, через которое можно обращаться как к свойствам и методам приложения, так и всех сборок, которые загружены в домен этого приложения. Например:
res = Sys.Process(“nUnitTestingApp”).AppDomain(“nUnitTestingApp.exe”).dotNET.nUnitTestingApp.Form1.MinusMethod(10,3);
Log.Message(res);
Очевидным минусом этого подхода является то, что приложение должно быть запущено.
| Назад: 11.4 Вызов API-функций и функций из DLL | Содержание | Дальше: 11.6 Remote Desktop, Virtual PC, VMware |